2011-05-05 61 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