暗記事項

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 に渡せるというのは、そういうもんと思うしかないのか。いつか深追いしたい。
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.