2

条件が満たされた場合に:dataattrを設定したいと思います。この場合、ユーザーには役割が必要です。つまり、これはブール式です。例を挙げましょう。

 - @data = 'contract-confirm'

 .create_button= link_to 'Something', new_some_path(@customer), :class => 'btn btn-success', :'data' => @data ? 'contract' : nil
 .clearer

ですから、これは奇妙に見えるかもしれませんが、顧客にラベルが付けられている場合はデータ属性を設定してから、jsをそのデータ属性にフックしたいと思います。その部分は機能します。うまくいかないのは、今は常に属性を設定しているということです。したがって、顧客が役割を持っていない場合でも、jsは夢中になります。私はここでの役割をまったく明示していないことを知っています。@ customer.roleがありますか?しかし、私はそれを適切に組み込むことができないようです。以前はifelseステートメントで管理していましたが、あまり資金がない多くの重複がありました。任意のヒント?

4

2 に答える 2

1

置き換えてみてください:'data' => @data?'contract':nil with :'data' =>'contract'if@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>
于 2013-01-28T10:12:52.537 に答える
1

このコードを試すことができます:

link_to 'Something', ... , :data => @customer.role? ? 'contract' : nil 

hamlにはnil属性が含まれないため、期待どおりに機能するはずです。

于 2013-01-28T12:24:53.397 に答える