2011-01-08 4 views
23

Jetzt habe ich ein Geräte-Modell, das E-Mail als authentication_key verwendet.Wie verwenden Sie verschiedene authentication_keys für zwei Gerätemodelle?

Ich möchte ein neues Entwicklungsmodell hinzufügen, das student_id als authentication_key verwendet.

Einige Führer erzählt mir die Konfiguration

"config.authentication_keys = [: email]" zu ändern: mit E-Mail: STUDENT_ID durch Ersetzen des.

Nach der Änderung schlägt der erste Modell Login immer fehl, also denke ich, dass ich verschiedene authentication_keys für die beiden Modelle separat angeben muss.

Wie soll ich tun?

Antwort

76

Sie müssen innerhalb Ihrer Modelle deklarieren, welche die Authentifizierungsschlüssel sind, und nicht innerhalb der Datei devise.rb.

class model1 < ActiveRecord::Base 

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

und für Ihr zweites Modell

class model2 < ActiveRecord::Base 

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

auch, dass Sie von devise.rb den config.authentication_keys Einstellungen

+0

Große, Vielen Dank kommentieren Sie sicher! – Roy

+2

Roy, wenn die Antwort passend ist, dann bitte fühlen Sie sich frei, es als eine richtige Antwort zu markieren (Ich versuche, etwas Ansehen aufzubauen!). Danke vielmals! – Dimitris

+0

Dies hat mir gerade den Arsch gerettet, als ich eine App implementiert habe, die auf Refinery CMS sitzt und Devise für seine eigene Authentifizierung verwendet. Vielen Dank! –

Verwandte Themen