Ruby on Rails5アプリケーションプログラミング

ボリュームが結構あり、書き方も辞書的だったので、どちらかというとオリジナルを作り始めてからリファレンス的に使うものかなと。

最初の概要だけ読んで一旦ペンディング

第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はモデル編集目的で使用するため、最初にモデルを指定して、ブロックでフォームを作る