Rails/オブザーバー
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Rails/オブザーバー);
*目次 [#t1ce7024]
#contents
*関連ページ [#t5c5f91e]
*参考情報 [#ucdbad7f]
*基本 [#g9055b5f]
-モデルやコントローラーでイベントが発生したタイミングで何...
-Rails 4.0からは本体から切りはなされたので、[[GitHub - ra...
-ただし2017/05/08(月)現在、rails-observersはRails 5では動...
*Rails::Observersの基本 [#c9af0017]
**Active Record Observer [#m6458cc1]
-未使用なので省略。
**Action Controller Sweeper [#jd2ca30d]
-コントローラーで保存や更新実行時にキャッシュをクリアした...
-まずActionController::Caching::Sweeperを継承したSweeper...
#pre{{
class ListSweeper < ActionController::Caching::Sweeper
observe List, Item #監視したいモデル(この場合、List、It...
def after_save(record)
list = record.is_a?(List) ? record : record.list
expire_page(controller: "lists", action: %w( show pub...
expire_action(controller: "lists", action: "all")
list.shares.each { |share| expire_page(controller: "l...
end
end
}}
-コントローラーに設定する。
#pre{{
class ListsController < ApplicationController
caches_action :index, :show, :public, :feed
cache_sweeper :list_sweeper, only: [ :edit, :destroy, :...
end
}}
-index、show、public、feedはキャッシュされ、edit、destroy...
終了行:
&tag(Rails/オブザーバー);
*目次 [#t1ce7024]
#contents
*関連ページ [#t5c5f91e]
*参考情報 [#ucdbad7f]
*基本 [#g9055b5f]
-モデルやコントローラーでイベントが発生したタイミングで何...
-Rails 4.0からは本体から切りはなされたので、[[GitHub - ra...
-ただし2017/05/08(月)現在、rails-observersはRails 5では動...
*Rails::Observersの基本 [#c9af0017]
**Active Record Observer [#m6458cc1]
-未使用なので省略。
**Action Controller Sweeper [#jd2ca30d]
-コントローラーで保存や更新実行時にキャッシュをクリアした...
-まずActionController::Caching::Sweeperを継承したSweeper...
#pre{{
class ListSweeper < ActionController::Caching::Sweeper
observe List, Item #監視したいモデル(この場合、List、It...
def after_save(record)
list = record.is_a?(List) ? record : record.list
expire_page(controller: "lists", action: %w( show pub...
expire_action(controller: "lists", action: "all")
list.shares.each { |share| expire_page(controller: "l...
end
end
}}
-コントローラーに設定する。
#pre{{
class ListsController < ApplicationController
caches_action :index, :show, :public, :feed
cache_sweeper :list_sweeper, only: [ :edit, :destroy, :...
end
}}
-index、show、public、feedはキャッシュされ、edit、destroy...
ページ名: