【问题标题】:how to add admin to Devise in Rails/Mongoid user class?如何在 Rails/Mongoid 用户类中添加管理员到 Devise?
【发布时间】:2012-03-27 22:23:54
【问题描述】:

我在 Rails 中有一个使用 Mongoid 和 Devise 的类用户。我似乎无法弄清楚如何添加管理员角色。 platformtec (Devise) 网站上的 How To 让我运行标准 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

谢谢, 查理马吉

【问题讨论】:

    标签: ruby-on-rails devise mongoid


    【解决方案1】:

    你只需要在布尔值中添加一个admin 字段,所以在你的类用户中添加这一行:

    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 wiki中关于admin的所有方法都可以正常工作。

    【讨论】:

    • 呃。该死。我忘记将布尔值中的 B 大写。我觉得自己像个白痴。谢谢Singara。
    • 你需要在类型中传递一个类,所以它是一个常量。 Ruby 中的常量始终以大写字母开头 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多