Привет, я использую rollify и только что понял, что я на самом деле не воспользовался его полным потенциалом.Какова цель 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
=> []
Может кто-нибудь объяснить, пожалуйста, объясните мне. Благодаря
Мне нравится reddit как источник вопросов, но я ** люблю ** stackoverflow, являющийся ** авторитетным источником ** ответов. Поэтому я поставил вопрос о том, что все могут быть проще, раньше; и [отправил мой ответ на reddit] (http://www.reddit.com/r/rails/comments/1cn4ra/can_someone_please_explain_the_abilityrb_file/c9i7s55). Если мой ответ не будет рассмотрен как благоприятный для него в reddit, я свяжусь с любым лучшим ответом в ответе здесь, а затем закрою это. В противном случае, я хотел бы, чтобы на его вопрос также был дан ответ, который я затем перейду к reddit. –