Rails布局名称在视图内

如何在视图中打印出当前布局的名称?

puts controller.current_layout 

谢谢

这适用于Rails 3.0.7:

 controller.send :_layout 

显然,这是一种私有方法,因此使用风险自负。

这对我有用:response.layout

UPDATE:是的,response.layout在rails3 +中不起作用,因此我通常在每个布局中定义一个@layout_name变量。

application.html.haml的示例

 - @layout_name = 'application' !!! Strict %html ... 

<%= controller.active_layout %>获取布局文件名。 因此layout 'application'将返回layouts/application.html.erb

在Rails 2.1.0和更高版本中