2011-01-08 6 views
23

अब मेरे पास एक devise मॉडल है, जो प्रमाणीकरण_की के रूप में ईमेल का उपयोग करता है।दो devise मॉडल के लिए अलग प्रमाणीकरण_की का उपयोग कैसे करें?

मैं एक नया डिवाइज़ मॉडल जोड़ना चाहता हूं, जो student_id को authentication_key के रूप में उपयोग करता है।

कुछ गाइड मुझसे कहता विन्यास

"config.authentication_keys = [: ईमेल]" संशोधित करने के लिए: के साथ ईमेल: student_id की जगह।

संशोधन के बाद, पहला मॉडल लॉगिन हमेशा विफल रहता है, इसलिए मुझे लगता है कि मुझे दो मॉडलों के लिए अलग-अलग प्रमाणीकरण_की को इंगित करना होगा।

मुझे कैसे करना चाहिए?

उत्तर

76

आपको अपने मॉडल के अंदर घोषित करना होगा जो devise.rb फ़ाइल के बजाय authenitcation कुंजी हैं।

class model1 < ActiveRecord::Base 

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

और अपने दूसरे मॉडल के लिए

class model2 < ActiveRecord::Base 

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

भी सुनिश्चित करें कि आप config.authentication_keys सेटिंग्स

+0

महान devise.rb से बाहर टिप्पणी करते हैं, धन्यवाद एक बहुत! – Roy

+2

रॉय, अगर उत्तर उपयुक्त है तो कृपया इसे सही उत्तर के रूप में चिह्नित करने के लिए स्वतंत्र महसूस करें (मैं कुछ प्रतिष्ठा बनाने की कोशिश कर रहा हूं!)। बहुत धन्यवाद! – Dimitris

+0

यह सिर्फ एक ऐप को लागू करते समय मेरे गधे को बचाता है जो रिफाइनरी सीएमएस के ऊपर बैठता है जो अपने स्वयं के प्रमाणीकरण के लिए डेविस का उपयोग करता है। धन्यवाद! –