2011-01-08 6 views
23

私は電子メールをauthentication_keyとして使用するdeviseモデルを1つ持っています。2つのデバイスモデルで異なるauthentication_keysを使用するにはどうすればいいですか?

student_idをauthentication_keyとして使用する、新しいデバイスモデルを1つ追加します。で、電子メール:STUDENT_ID交換することによって:

いくつかのガイドでは、コンフィギュレーションに

"[電子メール] config.authentication_keys =" を修正するために私に語りました。

変更後、最初のモデルのログインは常に失敗するので、2つのモデルに対して別々のauthentication_keysを指定する必要があります。

どうすればよいですか?

答えて

76

devise.rbファイル内ではなく、authenitcationキーであるモデル内で宣言する必要があります。

class model1 < ActiveRecord::Base 

devise :database_authenticatable, :rememberable, :trackable, :authentication_keys => [:email] 

とあなたの第2のモデルのための

class model2 < ActiveRecord::Base 

devise :database_authenticatable, :rememberable, :trackable, :authentication_keys => [:studentid] 

あなたは

+0

グレートconfig.authentication_keys設定devise.rbからコメントアウトことを確認して、どうもありがとう! – Roy

+2

ロイ、答えが適切な場合は、正しい答えとしてマークしてください(私はいくつかの評判を構築しようとしています!)。どうもありがとう! – Dimitris

+0

これはちょうど自分の認証のためにDeviseを使用するRefinery CMSの上に座っているアプリケーションを実装している間、私のお尻を保存しました。ありがとう! –