Как добавить администратора в Devise в Rails / Mongoid пользовательский класс? - PullRequest
3 голосов
/ 28 марта 2012

У меня есть класс User в Rails, использующий Mongoid и Devise. Я не могу понять, как добавить роль администратора. Как на сайте platformtec (Devise) я хочу, чтобы я запустил стандартную миграцию Rails, но это не работает из-за Mongoid.

Кто-нибудь может указать мне правильное направление?

Вот мой user.rb (за вычетом закомментированных модулей):

class User
    include Mongoid::Document
    # Include default devise modules.
    devise :database_authenticatable, :registerable,
      :recoverable, :rememberable, :trackable, :validatable

    ## Database authenticatable
    field :email,              :type => String, :null => false, :default => ""
    field :encrypted_password, :type => String, :null => false, :default => ""

    ## Recoverable
    field :reset_password_token,   :type => String
    field :reset_password_sent_at, :type => Time

    ## Rememberable
    field :remember_created_at, :type => Time

    ## Trackable
    field :sign_in_count,      :type => Integer, :default => 0
    field :current_sign_in_at, :type => Time
    field :last_sign_in_at,    :type => Time
    field :current_sign_in_ip, :type => String
    field :last_sign_in_ip,    :type => String


    ## Token authenticatable
    # field :authentication_token, :type => String
    field :name
    validates_presence_of :name
    validates_uniqueness_of :name, :email, :case_sensitive => false
    attr_accessible :name, :email, :password, :password_confirmation, :remember_me
end

Спасибо, Чарли Маги

1 Ответ

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

Вам просто нужно добавить поле admin в Boolean, чтобы в вашем классе пользователь добавил эту строку:

field :admin, :type => Boolean, :default => false

это точно такая же миграция в AR:

class AddAdminToUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :admin, :boolean, :default => false
  end

  def self.down
    remove_column :users, :admin
  end
end

После этого добавления все методы об администрировании в вики-устройстве devise работают нормально.

...