Rails 3:如何获取当前布局的名称?

Posted

技术标签:

【中文标题】Rails 3:如何获取当前布局的名称?【英文标题】:Rails 3: How to get the name of the current layout? 【发布时间】:2011-12-27 22:21:21 【问题描述】:

在我的控制器中,我有:

render :layout => 'mobile'

在我看来,我希望能够获得布局的名称,在本例中为“mobile”。

我不需要控制器或动作名称...只是布局的名称。

我使用的是 Rails 3.0.6。

【问题讨论】:

见:***.com/questions/3326579/… @ZekeTemplin 这对我不起作用。在我的示例中,使用:_layout 输出application,而不是mobile 【参考方案1】:

我迟到了,但试试这个:

controller.send(:_layout).virtual_path.name

在 Rails 3.2 中测试

【讨论】:

【参考方案2】:

为什么不在控制器中创建变量:

@layout = 'mobile'
render :layout => @layout

那么你就可以在你的视图中访问@layout

【讨论】:

因为有更好的方法来做到这一点:controller.send :_layout. @RyanBigg 这对我不起作用。在我的示例中,使用:_layout 输出application,而不是mobile 只要您不手动渲染这样的布局,它就可以工作:render :layout => 'mobile'

以上是关于Rails 3:如何获取当前布局的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何生成属性名称,并在 Rails 模型中获取它们的值

Rails:使用Heroku时如何获取当前用户的时区

Ruby on Rails 如何获取当前 URL?

在前端获取布局名称 - 流畅的错字3

在 Rails 中,如何获取当前 url(但没有路径)

如何在 Postgres 9.3 中获取当前时区名称?