-2

在我的应用程序中,我需要做两种方式登录系统: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

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

4

1 回答 1

1

您有 3 个选项:

  1. 将字符串字段添加type到您的表并从User模型派生(管理员和用户将具有相同的登录路径)。
  2. 添加布尔字段admin并使用 ie CanCan gem。
  3. 运行rails g devise admin并拥有单独的管理模型。

您选择的方式取决于您的应用程序结构。

于 2012-12-17T21:11:38.967 回答