我在HAML写这篇文章。我在正文中运行:= params [:controller],它显示当前的url控制器。我想将它设置为haml中body标签中的一个类。
目前我在做:
%body{:class => '#{params[:controller]}'}
我知道这是错的,我找不到解决方案。这可能很简单。谢谢!
答案 0 :(得分:2)
您的代码存在一些问题:
1)字符串插值(#{}
)仅在字符串是双引号而不是单引号时有效。
2)此处不需要字符串插值 - 您可以%body{:class => params[:controller]}
,因为params[:controller]
已经是字符串。
答案 1 :(得分:0)
信任params是不好的做法,所以请使用controller.controller_name
来获取当前控制器的名称:
%body{:class => controller.controller_name}
答案 2 :(得分:0)
将%body
放入HAML会生成一个包含两个 <body>
标记的页面。这对我来说太奇怪了,所以我这样做:
:javascript
$('body').addClass("#{@body_css}");
答案 3 :(得分:-1)
根据文件:
Brackets表示用于指定的Ruby哈希 元素的属性。它实际上被评估为Ruby哈希,所以 逻辑将在其中工作,并且可以使用局部变量。
所以你可以在你看来做:
%body{:class => controller_name} #since it's a string and you need not #{} to evaluate