Доступ CanCan 'может?' метод из модели

Можно добраться current_userполномочия от представления или использования контроллера can? этим способом:

  <% if can? :update, @article %>
    <%= link_to "Edit", edit_article_path(@article) %>
  <% end %>

Как может я получать доступ к этой функциональности из модели с помощью этого синтаксиса:

user.can?(:update, @article)
46
задан Tom Lehman 20 July 2010 в 19:06
поделиться

1 ответ

На 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)
68
ответ дан 26 November 2019 в 20:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: