Привет, я использую rolify и только что понял, что на самом деле я не использую весь его потенциал.
В настоящее время я делаю что-то в своем контроллере, например, перенаправляю пользователей, если current_user.has_role? :whatever_role
, и разрешаю пользователям, если у них есть какая-либо другая роль...
Кто-то задал вопрос на stackoverflow о rolify, и когда я попытался ответить на него, я понял, что делаю это неправильно.
Вот тут-то и начинается мое замешательство... Внутри Ability.rb у меня есть:
user ||= User.new # guest user (not logged in)
if user.has_role? :consumer
can :manage, Review
else
can :read, Review
end
Теперь предположим, что я добавляю пользователю роль потребителя:
x=User.last
x.add_role :consumer
# => #<Role id: 10, name: "consumer", resource_id: nil, resource_type: nil, created_at: "2013-04-18 23:00:46", updated_at: "2013-04-18 23:00:46">
Итак, роль создана. Я могу проверить это, выполнив:
x.has_role? :consumer
=> true
Теперь я ожидаю, что это даст возможность управления для обзоров ...
x.has_role? :consumer, Review
=> true
но не для других моделей... здесь я пробую продукты
x.has_role? :consumer, Product
=> true
Кроме того, когда я смотрю на «запрос ролей ресурсов» и пытаюсь запросить прикладные роли для отзывов, я не нахожу прикладных ролей:
Review.first.applied_roles
=> []
Может кто-нибудь, пожалуйста, объясните мне роль ролифы. Спасибо