【本日の学習内容: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コントローラーを編集
本来SQLでないとDBの操作ができないが、
ModelにActiveRecordが適用されているおかげで、Rubyを用いてDBからデータを探したり、持ってきたりすることができる。
https://qiita.com/ryokky59/items/a1d0b4e86bacbd7ef6e8
ActiveRecordメソッド(find、find_by、where)