我正在使用一個gem,它向我的Rails應用程序添加引擎,並使用默認應用程序佈局呈現所有呈現html片段的路徑。我想讓這個寶石中的控制器使用不同的佈局。有沒有一種方法可以將代碼添加到初始化程序中,該初始化程序將動態地導致gem中的控制器始終使用佈局。例如。我可以在初始化器中拋出如下代碼(這不起作用),假設SampleController的完整定義在我正在使用的gem中定義?Rails覆蓋gem中的控制器佈局
class SampleController
layout 'my_layout'
end
我知道你可以打電話class_eval
或instance_eval
類和實例方法,但如何重寫這個類型的初始化代碼?
您不需要爲此做任何類或實例評估工作。您的引擎應自動將您的引擎佈局目錄推入視圖路徑堆棧。只要確保引擎配置正確指定了目錄(請注意,如果您單獨指定一個路徑,則需要將它們全部指定)。 – coreyward 2011-04-02 01:45:00