2

現在のユーザーが「ホスト」の場合にのみ削除ボタンを表示しようとしていますが、ホストのユーザー ID がゲストのユーザー ID と一致してもボタンは非表示になっています

<%= link_to "X" , "/songs?name=#{s.name}&party_profile_id=#{s.party_profile_id}&commit=X", :remote => true, :class => "btn btn-inverse btn-small refreshbutton", :style => "display:none" unless @current_user.id == @party_profile.host %>

間違った構文を使用していますか? アイテムを条件付きで表示するより良い方法はありますか?

4

3 に答える 3

5

css クラスを切り替えるのではなく、レンダリングのみに切り替えることができます (アプリケーションが何らかの理由でクライアント側を切り替える必要がある場合を除きます)。

<% if @current_user.id == @party_profile.host %>
    <%= link_to "X" , "/songs?name=#{s.name}&party_profile_id=#{s.party_profile_id}&commit=X", :remote => true %>
<% end %>
于 2013-02-18T21:15:14.523 に答える
3

styleあなたの条件は、属性ではなく、リンク自体に適用されます。

代わりにこれを行います:

<%= link_to "X" , "/songs?name=#{s.name}&party_profile_id=#{s.party_profile_id}&commit=X", :remote => true, :class => "btn btn-inverse btn-small refreshbutton", :style => "#{'display:none;' unless @current_user.id == @party_profile.host}"  %>
于 2013-02-18T21:16:02.400 に答える
1

すべきではないか

if @current_user.id == @party_profile.host?

編集:

スタイルを表示なしに設定する必要はありません。if ステートメントは、ビューでレンダリングされるかどうかを処理します。

于 2013-02-18T21:14:57.050 に答える