рельсы канкан ролей? - PullRequest
       27

рельсы канкан ролей?

1 голос
/ 06 марта 2012

Я использую devise для своей системы аутентификации и cancan для разрешений.Я нахожусь в процессе добавления ролей, и я пытаюсь сделать так, чтобы, когда пользователь регистрируется, ему автоматически назначали роль.Я смотрел Райан Бейт скринкаст , а также следовал учебнику devise & cancan .

Как я могу реализовать это, не используя флажки, и автоматически назначать роли пользователям на основе того, когда они регистрируются.

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

Вы можете попробовать использовать обратный вызов: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

Обратный вызов before_create, вероятно, то, что вы хотите в вашей пользовательской модели:

class User < ActiveRecord::Base
  before_create :set_default_roles
  private
    def set_default_roles
      self.roles = ['Default user']
    end
end
2 голосов
/ 06 марта 2012

AR::Callbacks подходит для вас, однако я предпочитаю устанавливать роли, когда объект User впервые инициализируется:

class Role < ActiveRecord::Base
end

class User < ActiveRecord::Base
  after_initialize :set_default_roles

  private
    def set_default_roles
      self.roles = self.roles || [Role.find_by_name('Default Role')]
    end
end
...