2011-05-05 36 views
0

我试图隐藏这个非管理员用户发布的'勾号框'。我使用了CanCan插件并设置了正确的权限,但我正在努力处理代码语法。我已经使用<%=如果可以? :在views/articles/_form.html.erb中部分发布,文章%>但它不起作用?隐藏“发布”按钮来自非管理员?

<div class="field"> 
    <%= f.label :tag_names, "Tags" %> <br /> 
    <%= f.text_field :tag_names %> 
</div> 
<div class="field"> 
<%= check_box("article", "published") %> 
    **<%= if can? :publish, @article %>** 
<%= "Publish article" %> 
</div> 
<div class="actions"> 
    <%= f.submit %> 
</div> 

enter image description here

回答

2

您应该使用<%,不<%=。此外,if声明在错误的地方,并且没有关闭end声明。下面是正确的代码:

<div class="field"> 
    <%= f.label :tag_names, "Tags" %> <br /> 
    <%= f.text_field :tag_names %> 
</div> 
<% if can? :publish, @article %> 
    <div class="field"> 
    <%= check_box("article", "published") %> 
    <%= "Publish article" %> 
    </div> 
<% end %> 
<div class="actions"> 
    <%= f.submit %> 
</div> 
+0

这是伟大的,感谢您对“@articles”共享 – ubique 2011-05-05 20:14:08

+0

代码失踪“@”太多,其现在可以正常使用。如果你也可以添加到你的答案,我已经更新了我最初的问题 – ubique 2011-05-05 20:22:30