Gem设计了多个用户模型系统

时间:2012-12-17 21:05:05

标签: ruby-on-rails devise admin

在我的应用程序中,我需要做两种方式登录系统: 1)用户 - 仅限网站的用户部分,包含有关用户的信息,登录数据等... 2)管理员 - 网站管理员部分的另一个模型。

但是怎么做? 现在我只有第一部分和我的迁移:

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users) do |t|
     ## Database authenticatable
     t.string :email, :null => false, :default => ""
     t.string :encrypted_password, :null => false, :default => ""

     ## Recoverable
     t.string :reset_password_token
     t.datetime :reset_password_sent_at

     ## Rememberable
     t.datetime :remember_created_at

     ## Trackable
     t.integer :sign_in_count, :default => 0
     t.datetime :current_sign_in_at
     t.datetime :last_sign_in_at
     t.string :current_sign_in_ip
     t.string :last_sign_in_ip

     ## Encryptable
     # t.string :password_salt

     ## Confirmable
     #t.string :confirmation_token
     #t.datetime :confirmed_at
     #t.datetime :confirmation_sent_at
     #t.string :unconfirmed_email # Only if using reconfirmable

     ## Lockable
     #t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
     #t.string :unlock_token # Only if unlock strategy is :email or :both
     #t.datetime :locked_at

     ## Token authenticatable
     t.string :authentication_token

     t.timestamps
    end

    add_index :users, :email, :unique => true
    add_index :users, :reset_password_token, :unique => true
    #add_index :users, :confirmation_token, :unique => true
    #add_index :users, :unlock_token, :unique => true
    add_index :users, :authentication_token, :unique => true
   end

  def self.down
    drop_table :users
  end
end

路线:

devise_for :users

但是如何添加第二个管理员登录部分?

1 个答案:

答案 0 :(得分:1)

您有3个选项:

  1. 将字符串字段type添加到您的表中,并从User模型派生(管理员和用户将具有相同的登录路由)。
  2. 添加布尔字段admin并使用ie CanCan gem。
  3. 运行rails g devise admin并拥有单独的管理模型。
  4. 您选择的方式取决于您的应用结构。