A

プログラミングの学習記録

【本日の学習内容:Deviseを用いたログイン機能の実装】

引き続きDeviseを用いたログイン機能の実装について学びました。

 昨日の続き

 

マイグレーションファイルを編集

マイグレーションファイルの内容を反映したitemテーブルを作成

 

seeds.rbに、サンプルとなるデータを登録してアプリの動作確認をしやすくする

seeds.rbにActiveRecordメソッドを記述し、

bundle exec rake db:seed

 

コンソールを立ち上げて、データが登録されていることを確認

 

トップページに遷移するルーティングを書く

デフォルトで記述されている、devise_forはdeviseを導入すると初期から書かれているので、気にしなくて良い。

 

itemsコントローラーを作る

indexアクションを書く

 

itemsディレクトリとindex.html.erbを作る

Newアクションを書く

new.html.erbを作る

 

createアクションとストロングパラメータを書く

create.html.erbを作る

 

直接newやcreateのURLでアクセスされた時の対策として、

before_action :move_to_index, exept: :index を記述し、

move_to_index アクションを書く

 

usersディレクトリとshow.html.erbを作る

 

app/view/application.htmlに、マイページへのリンクを書く

 

items/index.html.erbに会員Noを追記

 

Itemsテーブルとusersテーブルの関連づけを行う

itemsテーブルには、以下を記述

belongs_to :user

usersテーブルには、以下を記述

has_many :items

 

ニックネームを登録できるようにするため、

ニックネームカラムをusersテーブルに追加する

データベースの内容を変更する必要があるため、マイグレーションファイルを作る

rails g migration AddNicknameToUsers nickname:string コマンド

bundle exec rake db:migrate コマンド

 

deviseに紐づいたビューを作成する

rails g devise:views コマンド

devise/new.html.erb を編集

 

applicationコントローラーを編集

 

 

ActiveRecord

RubySQLの翻訳機。

本来SQLでないとDBの操作ができないが、

ModelにActiveRecordが適用されているおかげで、Rubyを用いてDBからデータを探したり、持ってきたりすることができる。

https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8

 

ActiveRecordメソッド(find、find_by、where)

https://qiita.com/nakayuu07/items/3d5e2f8784b6f18186f2