次の方法でcurrent_user
を使用して、ビューまたはコントローラーからcan?
のアクセス許可を取得できます。
<% if can? :update, @article %>
<%= link_to "Edit", edit_article_path(@article) %>
<% end %>
この構文を使用して、モデルからこの機能にアクセスするにはどうすればよいですか。
user.can?(:update, @article)
このためのwikiエントリがgithubにあります: https://github.com/ryanb/cancan/wiki/ability-for-other-users
次のようにユーザーモデルを変更する必要があります。
class User < ActiveRecord::Base
def ability
@ability ||= Ability.new(self)
end
delegate :can?, :cannot?, :to => :ability
end
次に、次のような能力を確認できます。
user.can?(:update,@article)