如果满足条件,我想设置:data attr。在这种情况下,用户应该有一个角色。所以这是一个布尔语句。让我举个例子。
- @data = 'contract-confirm'
.create_button= link_to 'Something', new_some_path(@customer), :class => 'btn btn-success', :'data' => @data ? 'contract' : nil
.clearer
所以我知道这可能看起来很奇怪,但我想设置一个数据属性,如果客户被标记,然后将js挂钩到该数据attr。那部分有效。什么行不通的是现在我总是设置属性。因此,即使客户没有角色,js也会被钩住。我知道我没有明确指出这里的所有角色。我有一个@ customer.role?但我似乎无法将其合理地纳入其中。我之前使用if else语句进行了管理,但后来又进行了大量复制,而我并没有这么做。有什么提示吗?
答案 0 :(得分:1)
尝试替换:'data'=> @data? 'contract':nil 与:'data'=> '合约'如果@data 。 我检查了下一个代码:
- @data_present = true
= link_to 'Something', root_path, :class => 'btn', :'data' => ('test' if @data_present)
呈现给:
<a href="/" class="btn" data="test">Something</a>
没有的代码 - @data_present = true 呈现给:
<a href="/" class="btn">Something</a>
答案 1 :(得分:1)
你可以尝试这段代码:
link_to 'Something', ... , :data => @customer.role? ? 'contract' : nil
haml不包含 nil 属性,因此它应该按预期工作。