2011-01-08 12 views
23

Teraz mam jeden model devise, który wykorzystuje email jako authentication_key.Jak korzystać z różnych kluczy uwierzytelniania dla dwóch modeli?

Chcę dodać nowy model devise, który używa student_id jako authentication_key.

Niektóre przewodnik mówi mi zmodyfikować konfigurację

"config.authentication_keys = [: email]" poprzez zastąpienie: email z: student_id.

Po modyfikacji pierwsze logowanie modelu zawsze kończy się niepowodzeniem, więc myślę, że muszę wskazać różne klucze uwierzytelniające dla obu modeli osobno.

Co mam zrobić?

Odpowiedz

76

Będziesz musiał zadeklarować wewnątrz modeli, które są kluczami authenitcation, a nie wewnątrz pliku devise.rb.

class model1 < ActiveRecord::Base 

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

i za drugim modelu

class model2 < ActiveRecord::Base 

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

również upewnić się, że wykomentuj z devise.rb ustawieniach

+0

Wielkich config.authentication_keys, wielkie dzięki! – Roy

+2

Roy, jeśli odpowiedź jest odpowiednia, proszę, zaznacz to jako poprawną odpowiedź (próbuję zbudować jakąś reputację!). Wielkie dzięki! – Dimitris

+0

To właśnie uratowało mój tyłek podczas wdrażania aplikacji, która znajduje się na szczycie CMS firmy Refinery, która używa Devise do własnego uwierzytelnienia. Dzięki! –

Powiązane problemy