苗条的dynamic条件类

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

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

看下面的例子:

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

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

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

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

如果你有多个条件,我现在正在做类似的事情

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

虽然我觉得这是一个缺陷,如果is_bar? 返回false并生成HTML结果

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

(瑕疵是foo之后的空白字符)。 如果有人有一个解决scheme将是很棒的。