苗条的动态条件类

时间:2013-03-06 08:17:14

标签: ruby-on-rails slim-lang

只是为了帮助其他开发者,因为在SO上没有类似的问题。

div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)

3 个答案:

答案 0 :(得分:128)

请参阅以下示例:

div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)

可以使用相同的方法将动态值分配给其他属性。

答案 1 :(得分:18)

如果不需要在列表中包含类,则使用类数组和nil元素,然后使用紧凑数组删除nil元素并最终将所有元素连接在一起。

div class=(["cday", "col-md-1", day.day == 1 ? "col-md-offset-#{day.cwday-1}" : nil].compact.join(' '))

答案 2 :(得分:11)

如果您有多种条件我现在正在做的事情

div class=(('foo ' if is_foo?) + ('bar' if is_bar?))

虽然如果is_bar我觉得它是一个瑕疵?返回false,生成的HTML结果为

<div class="foo "></div>

(瑕疵是foo后面的空白字符)。如果某人有解决方案,那就太棒了。