我目前正在開發一些模塊,以使用InheritedResources(最新版本)應用程序在Rails 3上從我的控制器中重用代碼。成功創建或更新對InheritedResources的操作後運行操作
我的想法是在成功創建或更新資源後應該運行一些行爲,但除了重新聲明「創建」或「更新」操作之外,我不確定如何解決此問題。
我目前使用類似
module SessionStorable
extend ActiveSupport::Concern
include Base
included do
before_filter :setup_resource, :only => :new
after_filter :reset_session_resource_id, :only => [:create, :update]
end
# ....
end
我有我使用特定資源設置,其中,除其他事項外,增加了資源的會話的ID。資源成功保存到BD後,我想從會話中刪除它的id,這就是after_filter所做的。
到目前爲止,我還通過將updated_at信息保存到會話中進行了處理,並比較了模型是否已更新(如果是,應該已成功)並運行該方法。但是,我不喜歡它(有點hacky),而且我正計劃讓其他模塊在更新之後也能與資源一起工作,並且不希望使用相同的方法兩次。
我應該使用IR的鉤子嗎?或者有關如何進行的其他想法?
我在考慮使用HTTP狀態碼。就像只應用代碼,如果準備的請求是「200」或類似的,但不確定這種方法(或者它是否會工作) – Yaraher 2011-06-11 18:57:38