只是为了帮助其他开发者,因为在SO上没有类似的问题。苗条的动态条件类
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
只是为了帮助其他开发者,因为在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?)
同样的方法可用于动态值分配给其他属性。
如果您有多个条件,我做的,现在像
div class=(('foo ' if is_foo?) + ('bar' if is_bar?))
虽然我觉得这是一个瑕疵,如果is_bar?在
<div class="foo "></div>
返回false和生成的HTML结果(缺陷是foo
后的空白字符)。如果有人有一个解决方案,那就太棒了。
在这种情况下尝试'String#rstrip'有两个条件: 'div class =((('foo'if is_foo?)+('bar'if is_bar?))。rstrip)'。 或者'div class =([('foo'if if_foo?),('bar'if is_bar?)]。compact.join(''))'有几种情况。 – 2014-01-24 22:55:11
如果不需要在列表中包含类,则使用类和nil元素的数组,然后使用紧凑数组删除nil元素并最终将所有元素连接在一起。
div class=(["cday", "col-md-1", day.day == 1 ? "col-md-offset-#{day.cwday-1}" : nil].compact.join(' '))
您会如何处理多种情况? – 2014-01-24 18:47:13
请在下面的评论中看到你的答案。 – 2014-01-24 22:58:53
这也可以附加一个类,例如:'div.councilor class =(councilor.retired??“retired”:“”)''生成:'div.councilor.retired' – 2016-07-13 04:31:50