Railsチュートリアル2章 まとめ
scaffoldを使ったらどういうディレクトリが作成されて、どういう挙動をするのか。
rails generate scaffold User name:string email:string
通常コントローラーを作成するタイミングでscaffold。これは「土台」という意味。
index,show,new,editアクションが自動的に生成された。細かいスタイルみたいなのも当たっていた。便利すぎる。でもバリデーションとは当たってなかったからあくまでも下地?基礎?をさらっと作ってくれる。
実務で使う事はあるにはあるが、ケースバイケース。(らしい)
ただし、scaffoldに頼っていては完全に理解が出来た!とは言えないので、3章以降は使わないとのこと。
■ポイント
・MVCの動き
1.ブラウザから「/users」というURLのリクエストをRailsへ送信。
2.そのリクエストはRailsのルーティングによってUserコントローラ内のindexアクションになる
3.indexアクションが実行され、そこからUserモデルに「全てのユーザーを取り出して」という意味の「User.all」で問い合わせる。
4.Userモデルは問合せを受け、全てのユーザーかをデータベースから取り出す。
5.データベースから取り出しユーザーの一覧をUserモデルからコントローラに返す。
6.Usersコントローラは、ユーザーの一覧を@users変数(@はRubyのインスタンス変数!)に代入し、indexビューに返す。
7.indexビューが起動し、ERB(ビューのHTMLに埋め込みがされているRubyコード)を実行してHTMLをレンダリングする(生成)。
8.コントローラはビューで生成されたHTMLを受け取り、ブラウザに返す。
なんで変数が@usersなのかは説明できそうで出来ない・・・Rubyの勉強もします。
・RESTアーキテクチャ
REpresentational State Transferの略。
アーキテクチャ(構造)のスタイルのひとつ。
ここは説明を読んだけど理解できないので、14章で詳しくやった時に絶対理解する。
・scaffoldにデメリットもある。
あくまで土台なので、ユーザー認証が無かったりテストが書かれていなかったりする。
コードが複雑で理解しがたい。
・UserとMicropostをscaffoldで作ったけど、本書でこの二つをリソースと読んでいるのはscaffoldだから?聴き慣れない言葉が出てきた。
・ユーザーはたくさんマイクロポストを持っている
1人のユーザーに複数のマイクロポストがある。
app/models/user.rb
class User < ApplicationRecord
has_many :microposts
end
1つのマイクロポストは1人のユーザーにのみ属する。
app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 }
end
マイクロポストのコンテンツが存在しているかどうかの確認
app/models/micropost.rb
class Micropost < ApplicationRecord
belongs_to :user
validates :content, length: { maximum: 140 },
presence: true
end
・rails consoleの仕組みを軽く。
■最後に
うん、理解はできてるけど。とっさに書けと言われたらまだ書けない。
とりあえず先に進むことが大事だから進みます!