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 回答