Rails覆盖gem中的控制器布局

时间:2011-04-01 23:44:53

标签: ruby-on-rails ruby

我正在使用一个gem,它将引擎添加到我的Rails应用程序中,其中所有路径都使用默认应用程序布局呈现html片段。我希望这个gem中的控制器使用不同的布局。有没有办法可以将代码添加到初始化程序中,该程序将动态地使gem中的控制器始终使用布局。例如。假设SampleController的完整定义是在我正在使用的gem中定义的,我可以在初始化器中抛出类似下面的代码(它不起作用)吗?

class SampleController
  layout 'my_layout'
end

我知道你可以为类和实例方法调用class_evalinstance_eval但是如何覆盖这种类型的初始化代码?

1 个答案:

答案 0 :(得分:1)

如果在layouts目录中创建'sample.html.haml'(或任何模板语言),将使用它代替application.html的application.html。

http://guides.rubyonrails.org/layouts_and_rendering.html#finding-layouts