対応関係

オブザーバ ---> モデル <===> コントローラ <===> ビュー <--- ヘルパー
スイーパ                           |              |
                              アクション      テンプレート

コントローラは、

  • ヘルパーをビューにincludeする (helper)
  • オブザーバをモデルに織り込む (observer)
  • スイーパをアクティブにする (cache_sweeper)
  • コントローラとビューのやりとりは、インスタンス変数で行う

※メモ

オブザーバをアクティブにするためにconfig/environment.rbで、

config.active_record.observers = :foo_bar, :hoge_hoge

とした場合、Rails 1.1.6 だと挙動がおかしい気がする。

class ParticularController < ApplicationController
  observer :foo_bar
end

だと、とりあえずうまく動く。

AssetTagHelper

Assetは素材(画像、スタイルシートスクリプト)のこと。

<%= img_tag "img1" %>
  • 生成されるURLは、asset_host + プレフィックス + 指定したパス + デフォルトの拡張子
  • asset_hostは、config.action_controller.assert_host
  • プレフィックスは/images, /stylesheets, /javascripts など
  • 指定したパスの先頭が「/」だと、プレフィックスは適用されない
  • 指定したパスの途中に「/」が含まれている場合、プレフィックスは適用される。

フィールドのヘルパー

フィールドのヘルパーの最初の2つのパラメータは共通

この設定は、フィールドに値を充填するときと、フォームを送信するときに使われる。
名前は、文字列かシンボルで指定する。
フィールドのヘルパーの呼び出しは()カッコつきで呼び出した方が、何かと問題が起きにくい。

<%= text_field("varname", "attrname") %>