105

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

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

3 回答 3

148

请参阅以下示例:

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

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

于 2013-04-10T17:48:20.987 回答
20

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

div class=(["cday", "col-md-1", day.day == 1 ? "col-md-offset-#{day.cwday-1}" : nil].compact.join(' '))
于 2014-02-02T20:20:15.860 回答
12

如果您有多种情况,我现在正在做类似的事情

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

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

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

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

于 2014-01-24T18:56:06.113 回答