我只是想知道每個人都推薦在他們的.html頁面中使用cancan嗎?在Ruby on Rails的index.html.erb上實現cancancan的最簡潔方法是什麼?
在我目前已成立只是一個小信息... 我/app/models/ability.rb:
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
else
can :read, :all
end
我使用的是articles_controller.rb和我建立了一個模型文章。
我用我articles_controller.rb
所以到我index.html.erb的load_and_authorize_resource方法。
我在我的頁面上有一些CRUD選項,我只想要一些鏈接和選項,例如編輯和刪除,以便管理員用戶可見。
在我的index.html.erb的一部分,我有這個鏈接,只能由管理員查看。
<% if can? :create, @article %>
<%= link_to 'Post New Load Data!', new_article_path %>
<% end %>
^這是完美的,我想要的。
但是我在index.html上有另一個區域讓我困惑。它就像這樣...
<% if current_user && current_user.admin? %>
<table>
<tr>
<th>Title</th>
</tr>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= link_to 'View', article_path(article) %> |</td>
<td><%= link_to 'Edit', edit_article_path(article) %> |</td>
<td><%= link_to 'Delete', article_path(article),
method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
<p>
</table>
<% else %>
<table>
<tr>
<th>Title</th>
</tr>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= link_to 'View', article_path(article) %> |</td>
</tr>
<% end %>
</table>
<% end %>
因此,它允許管理員看到編輯和刪除選項。 這是我想要的,但我沒有使用CanCan來做到這一點。使用CanCan有沒有 的方法來簡化這個?這樣我就不必重複很多 我的部分。