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

5
在我的控制器中,我有以下代码:
render :layout => 'mobile'

在我看来,我希望能够获取布局的名称,例如“mobile”。

我不需要控制器或操作名称……只需要布局的名称。

我正在使用Rails 3.0.6。


1
请参见:https://dev59.com/JHA75IYBdhLWcg3wYH_I - ezkl
1
@ZekeTemplin 那对我不起作用。在我的例子中,使用 :_layout 输出的是 application,而不是 mobile - Shpigford
2个回答

11
我晚了,但请尝试这个:

controller.send(:_layout).virtual_path.name

在Rails 3.2中测试通过


0
为什么在你的控制器中不定义一个变量:
@layout = 'mobile'
render :layout => @layout

然后你就可以在视图中访问@layout


4
因为有更好的方法来实现这个:controller.send :_layout - Ryan Bigg
1
@RyanBigg 那对我不起作用。在我的例子中,使用 :_layout 输出的是 application,而不是 mobile - Shpigford
1
只要您不手动渲染布局,它就能正常工作,例如:render :layout => 'mobile'。 - tmaximini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接