2010-04-12 86 views
4

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

puts controller.current_layout 

THX

+0

可能重复的[Rails3获取当前布局名称内部视图](http://stackoverflow.com/questions/3326579/rails3-get-current-layout-name-inside-view) – 2012-04-05 01:45:58

回答

4

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

In Rails 2.1.0及更高版本

+0

ow ... path to a布局...好的... thx。 – xpepermint 2010-04-12 14:37:40

+0

当我想为像这样的“布局”窗口小部件设置布局时出现问题,:only => [:account,:verify]“。在这种情况下,controller.active_layout总是返回“小部件”。固定? – xpepermint 2010-04-14 16:24:24

+2

在Rails 3中不起作用。 – Zabba 2011-02-20 13:29:13

5

这个工作对我来说:response.layout

UPDATE: 真,response.layout不Rails3中工作,因此,+我通常定义每个布局内@layout_name变量。的application.html.haml

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

这对Rails 3不起作用。'#layout'现在是'ActionDispatch :: Response'里面的私有方法。 – cpjolicoeur 2011-01-13 21:27:20

+0

如果我没有弄错它在beta版本中工作。 – xpepermint 2011-01-14 11:42:11

9

这个工程使用Rails 3.0.7

例子:

controller.send :_layout 

显然,这是一个私有方法,所以在你自己的风险。