我有一个条件,如果 action_name 包含“index”,那么第二个类应该只返回“index”,否则,将它设置为 action_name。
我正在按照这些思路尝试一些事情:
- if action_name =~ /.*index.*/
%body{ :class => "#{controller_name} index" }
- else
%body{ :class => "#{controller_name} #{action_name}" }
不幸的是,我 body 的其余部分位于这些布局之后,并且它仅针对 else
子句显示。
我想我可以在这里使用一个更具可读性的衬里,它可以在行内执行 if 语句,而不是更冗长的多行 if 语句,但我可以在这里使用一些帮助来使它工作预计在 HAML 中。
最佳答案
好吧,这是一个单行:
%body{ :class => "#{controller_name} #{(action_name =~ /.*index.*/) ? 'index' : action_name}" }
虽然可读性不强!
关于ruby-on-rails - 如何在 HAML 中使用 if 语句来控制标记类字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9731471/