ruby-on-rails - 如何在 HAML 中使用 if 语句来控制标记类字符串?

标签 ruby-on-rails ruby ruby-on-rails-3 haml

我有一个条件,如果 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/

相关文章:

ruby-on-rails-3 - Rails 3 中的 Webmock gem 并正确包含它

ruby-on-rails - 为资源(单数)和资源(复数)创建 Rails 路线的最佳方法?

ruby-on-rails - 延迟作业超时

ruby-on-rails - Active Record 查询 'where' 忽略空格

ruby-on-rails - 功能测试错误 - 未初始化常量 FFaker::File

ruby - 处理 Rails 3 中的精确单位

ruby-on-rails - Array.count with block 不返回正确答案

ruby-on-rails - 如何在闪存错误中添加换行符?

ruby-on-rails - rails,如何合并两个 ActiveRecord 查询结果

javascript - 从 javascript 访问实例变量