रूबी कंसोल से एक वाइस यूजर बनाएं


146

माणिक कंसोल से डेविस के साथ एक नया उपयोगकर्ता ऑब्जेक्ट बनाने और सहेजने के तरीके पर कोई विचार?

जब मैंने इसे बचाने की कोशिश की, तो मैं हमेशा झूठा हो रहा हूं। मुझे लगता है कि मैं कुछ याद कर रहा हूं, लेकिन मैं संबंधित जानकारी नहीं पा रहा हूं।


1
आपके प्रश्न का उत्तर नहीं, और आप शायद पहले से ही रेलकास्ट के बारे में जानते हैं, लेकिन मैंने डेविस के बारे में सीखते समय इन वीडियो को उपयोगी पाया: railscasts.com/episodes/209-introducing-devise , railscasts.com/episode/210-customizing-devise । उनके पास डेविस के बारे में कुछ और उपयोगी वीडियो भी हैं। सौभाग्य।

2
हाँ, मैंने उन दोनों को देखा, लेकिन वे कुछ भी नहीं कह रहे हैं कि मैं क्या पूछ रहा हूं।
मार्टिन

जवाबों:


197

यदि आप चाहते हैं तो मान्यताओं को छोड़ने के लिए आप सहेजने के तरीके में गलत जोड़ सकते हैं।

User.new({:email => "guy@gmail.com", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)

नहीं तो मैं यही करता

User.create!({:email => "guy@gmail.com", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })

यदि आपके पास confirmableमॉड्यूल को डेविस के लिए सक्षम किया गया है, तो सुनिश्चित करें कि आप confirmed_atकुछ Time.nowबनाते समय मूल्य को सेट कर रहे हैं ।


51
लगता है जैसे (झूठा) बचा है, अब बचा जाना चाहिए (: मान्य => असत्य)
मार्टिन

9
यहाँ बस इतना जादू हो रहा है .. उपयोगकर्ता मॉडल सक्रिय रिकॉर्ड बढ़ाता है। कैसे बनाने की विधि overriden है। पासवर्ड कहाँ एन्क्रिप्ट किया जा रहा है?
कोडअनंद


करने का एक गलत तरीका लगता है। जबरन मान्य करने (या सत्यापन को रोकने) का यह तरीका एन्क्रिप्टेड_पासवर्ड को सेट नहीं करेगा, जिससे यह रिकॉर्ड असली ऐप में बेकार हो जाएगा।
VPaul

79

आपको इसका उपयोग करने में सक्षम होना चाहिए

u = User.new(:email => "user@name.com", :password => 'password', :password_confirmation => 'password')
u.save

यदि यह गलत है, तो आप कॉल कर सकते हैं

u.errors

क्या गलत हुआ देखने के लिए।


17
यदि आप उपयोग करते हैं: पुष्टि करने योग्य है, तो भी सेट करना न भूलें: आप को अभी लॉग इन कर सकते हैं।
डेविड सल्फ

9
एक शॉर्टकट के रूप में, यदि आप उपयोग कर रहे हैं, तो Confirmableकॉल करेंu.confirm!
Captainpete

30

जब आपके मॉडल में: पुष्टिकरण विकल्प होता है, तो इसका अर्थ है कि उपयोगकर्ता को पहले पुष्टि करनी चाहिए। उपयोगकर्ता को बचाने के लिए आप दो तरीके कर सकते हैं।

ए। पहले स्किप की पुष्टि करें:

newuser = User.new({email: 'superadmin1@testing.com', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save

ख। या पुष्टि का उपयोग करें! :

newuser = User.new({email: 'superadmin2@testing.com', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save

6

यदि आप पुष्टिकरण ईमेल भेजने से बचना चाहते हैं , तो सबसे अच्छा विकल्प है:

    u = User.new({
      email: 'demo@greenant.com.br',
      password: '12feijaocomarroz',
      password_confirmation: '12feijaocomarroz'
    })

    u.confirm
    u.save

इसलिए यदि आप एक नकली ईमेल का उपयोग कर रहे हैं या आपके पास कोई इंटरनेट कनेक्शन नहीं है, तो वह त्रुटियों से बच जाएगा।


अद्यतन: confirm!अब बस हैconfirm
छायांकन

2

उपरोक्त में से किसी भी उत्तर ने मेरे लिए काम नहीं किया।

यह जो मैंने किया है:

User.create(email: "a@a.com", password: "asdasd", password_confirmation: "asdasd")

ध्यान रखें कि पासवर्ड 6 अक्षरों से बड़ा होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.