ボリュームが結構あり、書き方も辞書的だったので、どちらかというとオリジナルを作り始めてからリファレンス的に使うものかなと。
最初の概要だけ読んで一旦ペンディング。
第1章 イントロダクション
IoC(Inversion of Control) 制御の反転
ライブラリの場合はコードから呼び出すもの。フレームワークはフレームワーク側がアプリのライフサイクルを管理していて、都度コードに問い合わせる。
gemにインストール済みパッケージリストの確認
gem list
第2章 Ruby on Railsの基本
指定するURLと呼び出すコントローラ/ビューが一致している時は、to以降を省略しても良い
get 'hello/index', to: 'hello#index' get ‘hello/index’
Railsは「設定よりも規約」の思想があるため、ファイルの名付けには注意。
コントローラ/アクション.html.erb
でテンプレート名を設定することで対応するアクションを実行するときに優先して実行される
Active RecordはRails標準のO/R(Object/Relational)マッパー。
O/RマッパーはDBのテーブルをモデルクラス、レコードをインスタンスとして表現することで、オブジェクト指向言語で扱いやすくするもの。
データベースを起動して設定や中身を確認することができる
rails db .tables # テーブルの一覧 .schema books # booksテーブルの構造確認
第3章 Scaffolding
URLパターンの:id
の部分は変数のプレイスホルダーになっている(カッコは省略可能)。それを呼び出すのにparams[:id]
を使う
index.json.jbuilder
ファイルも同時に生成される。これは.json
でURLを指定したときに、json形式で表示するためのテンプレート
:formatの部分のデフォルト値がhtmlのため、.html.erb
の時URLの最後に.html
を省略できただけ
bookのようなモデルのオブジェクトが指定されると、オブジェクトと一意に表現する値(=book.id)が取得される
newアクションで空のオブジェクトを生成しておかないと、フォームが機能しないので注意
第4章 ビュー開発
アクションメソッドが存在しない場合、指定されたURLに応じて直接テンプレートを見にいく
form_tag
はモデル編集目的ではない汎用的なフォーム。検索や条件など
form_for
はモデル編集目的で使用するため、最初にモデルを指定して、ブロックでフォームを作る