【发布时间】:2011-02-07 00:15:25
【问题描述】:
如何在视图中打印出当前布局的名称?
例子
puts controller.current_layout
谢谢
【问题讨论】:
标签: ruby-on-rails layout views
如何在视图中打印出当前布局的名称?
例子
puts controller.current_layout
谢谢
【问题讨论】:
标签: ruby-on-rails layout views
这适用于 Rails 3.0.7:
controller.send :_layout
显然,这是一种私有方法,因此使用风险自负。
【讨论】:
这对我有用:response.layout
更新: 没错,response.layout 在 rails3+ 中不起作用,因此我通常在每个布局中定义一个 @layout_name 变量。
application.html.haml 示例
- @layout_name = 'application'
!!! Strict
%html
...
【讨论】:
#layout 现在是 ActionDispatch::Response 中的私有方法
<%= controller.active_layout %> 获取布局文件名。所以layout 'application' 会返回layouts/application.html.erb
在 Rails 2.1.0 及更高版本中。
【讨论】: