HAML中的多个条件类

时间:2015-04-09 21:10:31

标签: ruby-on-rails haml

使用Ruby和HAML,有一种更短的方式来表示这种逻辑:

%tr{class: "#{'success' if admin.approved?} #{'warning' unless admin.approved?}"}

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用三元语句简化逻辑(如果/ else,则为一行):

%tr{class: admin.approved? ? 'success' : 'warning'}

或者您可以将逻辑移动到帮助器。例如,在application_helper.rb中创建一个辅助方法:

def admin_row_class(admin)
  admin.approved? ? 'success' : 'warning'
end

然后在视图中使用帮助器:

%tr{class: admin_row_class(admin)}