-2

私のアプリでは、2 通りのログイン システムを実行する必要があります。1) ユーザー - ウェブサイトのユーザー部分のみ、ユーザーに関する情報、ログイン データなどを含みます...

しかし、これを行う方法は?今、私は最初の部分と私の移行しかありません:

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

しかし、2 番目の admin-login 部分を追加するにはどうすればよいでしょうか?

4

1 に答える 1

1

次の 3 つのオプションがあります。

  1. テーブルに文字列フィールドを追加し、モデルtypeから派生させますUser(管理者とユーザーは同じログイン ルートを持ちます)。
  2. boolean フィールドadminを追加し、つまり CanCan gem を使用します。
  3. 実行rails g devise adminして、別の管理モデルを用意します。

選択する方法は、アプリの構造によって異なります。

于 2012-12-17T21:11:38.967 に答える