我有一個狂歡商務2.1.1應用程序(Rails 4.0.0),我想顯示一些'相關產品'在產品詳細信息頁面上。相關產品只是隨機選擇的品牌和性別相同的產品。它正在工作......我製作了products_controller_decorator.rb
,擴展了熱潮products_controller.rb
。導航過濾器掛鉤控制器操作已經運行後,但在視圖呈現之前
狂歡的products_controller.rb
具有內置@product
一個的before_filter:
before_filter :load_product, :only => :show
和我自己的裝飾有設置@related_products
before_filter :get_related_products, :only => :show
一個方法的問題是:
一)因爲它發生,過濾器之前的load_product
在過濾器之前在我的get_related_products
之前被調用,因此co-incidenta lly,我有權訪問它設置的@product
變量。但據我所見,這並不能保證。我想確保我的濾波器,後來被稱爲...
和
B)施普雷的show
方法還設置@taxon
,我真的很希望能夠在自己的get_related_products
方法使用。
所以,我想要的是像CakePHP的before_render
這樣的鉤子,它在控制器方法運行之後被調用,但是在呈現視圖之前。我似乎無法找到相當於鐵軌的鐵軌。有這樣的事嗎? after_filter
不會爲我做,因爲這是在視圖呈現後調用的。
如果不是,在Spree的產品控制器的show
方法運行後,我可以通過一種方式獲得它的實例變量,然後調用get_related_products
的最佳方式是什麼?
這個答案可能是清潔劑:高清渲染(*參數)run_before_render和超級結束 – alexandrecosta