Как получить доступ к методу ‘can?’ из ячейки?

#ruby-on-rails #cancan #rails-cells

#ruby-on-rails #cancan #рельсы-ячейки

Вопрос:

Я использую cancan и cells gems в своем проекте ruby-on-rails. Как получить доступ к can? методу из ячейки?Спасибо.

Ответ №1:

Мне пришлось сделать именно это. Попробуйте

 class MyCell < Cell::Rails

  include CanCan::ControllerAdditions

end                                        
  

Если вы также используете Devise, мне пришлось сделать это:

 class MyCell < Cell::Rails

  include CanCan::ControllerAdditions
  include Devise::Controllers::Helpers
  Devise::Controllers::Helpers.define_helpers(Devise::Mapping.new(:user, {}))

end                                        
  

#define_helpers будут ли добавлены вспомогательные методы, такие как current_user и user_signed_in? в ячейку.

Комментарии:

1. привет, qnm! для чего нужна последняя define_helpers часть?

2. @dgilperez Взгляните на код — вы увидите, что это приводит к появлению помощников по разработке — current_user / user_signed_in? и т.д. в ячейку в качестве помощников.

Ответ №2:

Для тех, у кого случайно есть пользовательский current_ability() метод (в котором вы можете изменить имя метода current_user и имена классов способностей):

 class OrderCell < Cell::Rails
  include CanCan::ControllerAdditions
  delegate :current_ability, :to => :controller
end