「Ruby on Rails 3 アプリケーションプログラミング」 - 6章 コントローラ開発を読んで

Ruby on Rails 3 アプリケーションプログラミングの6章「コントローラ開発」を読んだメモと感想を挙げておきます。

とはいっても、コントローラは割りと良く使っていたので、気になったところだけです。

◆テンプレートでXML文書を定義可能
〜.html.erb、〜.xml.erbのように、「テンプレート名.フォーマット形式.erb」という命名規則に従うことで
任意の形式の文章をテンプレートで定義可能。

◆cookiesメソッドのオプションについて
・:valueと:expiresは「事実上、必須」(P325)。:expiresを省略すると、ブラウザと閉じた時にcookieが消える。
・:secureは、通信を暗号化している場合はtrueにするべき。
・:httponlyは、HTTPクッキーを有効化し、JavaScriptなどHTTP以外からのクッキーへのアクセスを遮断する。

◆flashメソッド
次のリクエストで自動的に消去されるセッション。画面間で一時的に値を保持しておきたいときに使用する。
A画面→B画面→C画面と遷移する場合、B画面では参照できるが、C画面では参照できない。

◆Applicationコントローラ
全てのコントローラのスーパークラスであり、アプリケーションで共通の処理を記述する。
認証機能、例外処理など

◆CSRF処理
Railsではデフォルトで対応。
・以下の3点に注意。
・get要求でデータの操作を行わない(get時にはRailsはトークンをチェックできないため)
 ・データ操作のリクエストは、ヘルパーを使用したフォームから投げるようにする。
 ・レイアウトを自作する場合、csrf_meta_tag メソッドを忘れないようにする。