2015-04-26 1 views
0

Это сводит меня с ума. Я пытаюсь настроить pundit с помощью разработки, и все работает нормально, пока я не попытаюсь установить роль по умолчанию. в моем случае роль по умолчанию - пользователь. когда я пытаюсь войти в систему, я получаю следующее сообщение об ошибке:Интеграция pundit не может написать неизвестный атрибут `role`

ArgumentError в Devise :: SessionsController # новый

приложение/модели/user.rb: 26: в `set_default_role»

здесь мой пользователь .rb:

class User < ActiveRecord::Base 
    enum role: [:user, :gig, :band, :venue, :promoter, :admin] 
    after_initialize :set_default_role, :if => :new_record? 

    def set_default_role 
    self.role ||= :user 
    end 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    belongs_to :role 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

validates :profile, presence: true, 
        uniqueness: true, 
        format: { 
         with: /[a-zA-Z0-9-]+/, 
         message: 'Must be formated correctly.' 
        } 

    before_create :set_default_role 
    has_many :gigs 

    private 
    def set_default_role 
    self.role ||= Role.find_by_name('user') 
    end 

    def gravatar_url 
    stripped_email = email.strip 
    downcased_email = stripped_email.downcase 
    hash = Digest::MD5.hexdigest(downcased_email) 

    "http://gravatar.com/avatar/#{hash}" 
    end 
end 

вот мой rold.rb:

class Role < ActiveRecord::Base 
    has_many :users 
end 

какие-либо идеи?

ответ

0

По-видимому, у меня не было роли в моей таблице пользователей. это то, что фиксируется мой вопрос:

rails generate migration add_role_to_user role:integer 

затем:

rake db:drop db:create db:migrate db:seed 

 Смежные вопросы

  • Нет связанных вопросов^_^