暗記事項
Scaffold
# rails generate scaffold モデル名(大文字単数) カラム名:型 カラム名:型 ...
rails generate scaffold User name:string email:string
Scaffold すると、モデル・ビュー・コントローラがすべて実装される。ただしバリデーションは行われない。
マイグレーション
# 下記のどちらか
bundle exec rails db:migrate
bundle exec rake db:migrate
Rails 4 以前は rake のみ。Rails 5 以降は rails コマンドで実行可能。
Heroku へのデプロイ
git push heroku master
heroku run rails db:migrate
デプロイしただけではダメで、マイグレーションを実行する必要あり。
メモ
resources によるルーティング
scaffold 後のルーティングを見てみると、その実装はあっさり。
config/route.rb
Rails.application.routes.draw do
resources :users
end
resources
によって、RESTful なルーティングが暗黙のうちに行われる。
演習: edit 画面の出力
編集画面を見るとデータベースからユーザー情報を取得しているが、edit メソッドは空っぽで、モデルを呼び出している様子がない。実際にモデルを呼び出しているのはプライベートメソッド set_user
だ。コントローラの before_action :set_user
によって実行されている。before_action
はログイン認証を要求する処理を走らせるのに便利。
気になったこと
- リソースに対する CRUD だけでアプリが実装できることは稀なのではないか。それを超えるとき、どんな URL にすればいいんだろう。第14章が楽しみ。
- インスタンス変数にすれば View に渡せるというのは、そういうもんと思うしかないのか。いつか深追いしたい。