Rails布局名称在视图中

xpe*_*int 4 layout views ruby-on-rails

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

puts controller.current_layout
Run Code Online (Sandbox Code Playgroud)

谢谢

小智 10

这适用于Rails 3.0.7:

controller.send :_layout
Run Code Online (Sandbox Code Playgroud)

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


xpe*_*int 5

这对我有用:response.layout

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

application.html.haml的示例

- @layout_name = 'application'
!!! Strict
%html
...
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于Rails 3.`#layout`现在是`ActionDispatch :: Response`中的私有方法 (4认同)