HAML中的多个条件类

too*_*keh 3 haml ruby-on-rails

使用Ruby和HAML,可以使用一种较短的方法来表示此逻辑:

%tr{class: "#{'success' if admin.approved?} #{'warning' unless admin.approved?}"}
Run Code Online (Sandbox Code Playgroud)

谢谢!

inf*_*sed 5

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

%tr{class: admin.approved? ? 'success' : 'warning'}
Run Code Online (Sandbox Code Playgroud)

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

def admin_row_class(admin)
  admin.approved? ? 'success' : 'warning'
end
Run Code Online (Sandbox Code Playgroud)

然后在您的视图中使用该助手:

%tr{class: admin_row_class(admin)}
Run Code Online (Sandbox Code Playgroud)