我正在使用一个gem,它将引擎添加到我的Rails应用程序中,其中所有路径都使用默认应用程序布局呈现html片段。我希望这个gem中的控制器使用不同的布局。有没有办法可以将代码添加到初始化程序中,该程序将动态地使gem中的控制器始终使用布局。例如。假设SampleController的完整定义是在我正在使用的gem中定义的,我可以在初始化器中抛出类似下面的代码(它不起作用)吗?
class SampleController
layout 'my_layout'
end
我知道你可以为类和实例方法调用class_eval
或instance_eval
但是如何覆盖这种类型的初始化代码?
答案 0 :(得分:1)
如果在layouts目录中创建'sample.html.haml'(或任何模板语言),将使用它代替application.html的application.html。
http://guides.rubyonrails.org/layouts_and_rendering.html#finding-layouts