Railsチュートリアル2章 まとめ

 

scaffoldを使ったらどういうディレクトリが作成されて、どういう挙動をするのか。

rails generate scaffold User name:string email:string

通常コントローラーを作成するタイミングでscaffold。これは「土台」という意味。

index,show,new,editアクションが自動的に生成された。細かいスタイルみたいなのも当たっていた。便利すぎる。でもバリデーションとは当たってなかったからあくまでも下地?基礎?をさらっと作ってくれる。

実務で使う事はあるにはあるが、ケースバイケース。(らしい)

 

ただし、scaffoldに頼っていては完全に理解が出来た!とは言えないので、3章以降は使わないとのこと。

 

■ポイント

 

MVCの動き

6

 

 

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の仕組みを軽く。

 

 

■最後に

 

うん、理解はできてるけど。とっさに書けと言われたらまだ書けない。

とりあえず先に進むことが大事だから進みます!