2013-02-18 55 views
2

我想只有在当前用户是“主人”,但即使主人的用户ID匹配的用户ID为客人条件显示Rails的

<%= 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 %> 
按钮被隐藏,显示删除按钮

我使用错误的语法吗?有没有更好的方式来有条件地显示项目?

+0

是'@ party_profile.host'一个整数,因为'@ current_user.id'几乎可以肯定是,我不知道,如果他们能永远是一样的事情。 – stephenmurdoch 2013-02-18 21:14:02

回答

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 %> 
1

不应该是

if @current_user.id == @party_profile.host

编辑:

您不需要将样式设置为无显示。 if语句将处理它是否在视图中呈现。

+0

不。他试图在这种情况下将样式设置为“display:none”。 – jdl 2013-02-18 21:16:11

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}" %>