2012-01-21 35 views

回答

2

如果是一些特定在控制器內的動作,那麼我會使用修飾器。只要把這個文件在app/decorators/forem/forums_controller_decorator.rb

Forem::ForumsController.class_eval do 
    layout "my_special_layout", :only => :show 
end 

如果你想爲一個特定的控制器的所有動作,那麼你應該使用初始化器:

Rails.application.config.to_prepare do 
    Forem::ForumsController.layout "my_special_layout" 
end 
+0

我得到的初始化工作,但裝飾沒」工作。我試着創建你提到的文件,但沒有發生任何事情。我試着先安裝了draper寶石,那也沒有做任何事情。有什麼我應該做的嗎? –

+0

你可能不得不在某處需要文件,[就像我們在狂歡](https://github.com/spree/spree/blob/master/auth/lib/spree/auth/engine.rb#L11-21) 。該文件不會自動加載。 –

+0

看起來很複雜。我想我會堅持使用初始化器。謝謝。 –