【问题标题】:Rails Layout name inside view视图内的 Rails 布局名称
【发布时间】:2011-02-07 00:15:25
【问题描述】:

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

例子

puts controller.current_layout

谢谢

【问题讨论】:

标签: ruby-on-rails layout views


【解决方案1】:

这适用于 Rails 3.0.7:

controller.send :_layout

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

【讨论】:

    【解决方案2】:

    这对我有用:response.layout

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

    application.html.haml 示例

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

    【讨论】:

    • 这在 Rails 3 上不起作用。#layout 现在是 ActionDispatch::Response 中的私有方法
    【解决方案3】:

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

    在 Rails 2.1.0 及更高版本中

    【讨论】:

    • 当我想为这样的动作设置布局时的问题“布局'widget',:only => [:account,:verify]”。在这种情况下,controller.active_layout 总是返回“widget”。修复?
    猜你喜欢
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2011-03-20
    • 2012-02-09
    • 1970-01-01
    • 2016-08-08
    • 2016-03-15
    • 1970-01-01
    相关资源
    最近更新 更多