2010-05-02 12 views
5

मेरे पास मेरे प्रोजेक्ट में उपयोगकर्ता और व्यवस्थापक भूमिका है। मैंने डेविस के साथ अपना प्रमाणीकरण बनाया।डेविस पंजीकरण पुष्टिकरण

मेरी व्यवस्थापक भूमिका में मेरे पास कोई पुष्टि नहीं है। मेरे उपयोगकर्ता मॉडल में मैं निम्नलिखित है:

devise :database_authenticatable, :confirmable, :recoverable, 
     :rememberable, :trackable, :validatable, :timeoutable, :registerable 

# Setup accessible (or protected) attributes for your model 
attr_accessible :email, :username, :prename, :surname, :phone, :street, :number, :location, 
       :password, :password_confirmation 

मेरे प्रवास लगता है:

map.devise_for :admins 
map.devise_for :users, :path_names => { :sign_up => "register", :sign_in => "login" } 

map.root :controller => "main" 

उपयोगकर्ता पंजीकरण के बाद मैं हूं:

class DeviseCreateUsers < ActiveRecord::Migration 
    def self.up 
    create_table(:users) do |t| 
     t.database_authenticatable :null => false 
     t.confirmable 
     t.recoverable 
     t.rememberable 
     t.trackable 
     t.timeoutable 
     t.validateable 
     t.string :username 
     t.string :prename 
     t.string :surname 
     t.string :phone 
     t.string :street 
     t.integer :number 
     t.string :location 

     t.timestamps 
    end 

    add_index :users, :email,    :unique => true 
    add_index :users, :confirmation_token, :unique => true 
    add_index :users, :reset_password_token, :unique => true 
    add_index :users, :username,    :unique => true 
    add_index :users, :prename,    :unique => false 
    add_index :users, :surname,    :unique => false 
    add_index :users, :phone,    :unique => false 
    add_index :users, :street,    :unique => false 
    add_index :users, :number,    :unique => false 
    add_index :users, :location,    :unique => false 
    end 

    def self.down 
    drop_table :users 
    end 
end 

मेरी routes.rb में मैं निम्नलिखित बयानों जोड़ा फ्लैश नोटिस के साथ नियंत्रक main पर रीडायरेक्ट किया गया, "आपने सफलतापूर्वक साइन अप किया है," और मैं लॉग इन हूं। लेकिन मैं लॉग इन नहीं करना चाहता, क्योंकि मैंने अपने नए उपयोगकर्ता accou की पुष्टि नहीं की है अभी तक

यदि मैं कंसोल खोलता हूं तो मैं लॉग इन पुष्टिकरण मेल टेक्स्ट में देखता हूं, लेकिन मैं पहले ही लॉग इन हूं। मैं समझा नहीं सकता। क्या किसी को कुछ पता है?

अगर मैं लॉग से पुष्टि-टोकन बाहर कॉपी और मेरे खाते की पुष्टि, मैं प्रवेश कर सकते हैं, लेकिन अगर मैं इस बात की पुष्टि नहीं है, मैं भी प्रवेश कर सकते हैं।

उत्तर

8

config/initializers में/वसीयत। आरबी एक लॉक होने से पहले उपयोगकर्ता को पुष्टि करने के लिए एक समय निर्धारित करने के लिए एक रेखा है।

config.confirm_within = 2.days 

यदि आप इसे 0 पर सेट करते हैं, तो आपको वांछित परिणाम प्राप्त करना चाहिए।

+0

हाँ यह था! धन्यवाद। guitsaru मुझे परेशान सवाल है, शायद आप मेरी मदद कर सकते हैं। मैं कुछ चीजों को कार्यात्मक परीक्षण में जांचना चाहता हूं और इसके कारण, मुझे किसी उपयोगकर्ता में लॉग इन करना होगा। लॉगिन सहायक अच्छा है और बहुत अच्छा काम करता है, लेकिन मुझे पुष्टि के साथ समस्याएं हैं। अगर मैं sign_in User.make (मैं machinist के साथ विकसित) करता हूं, तो उपयोगकर्ता बना देगा, लेकिन पुष्टि नहीं की जाएगी। अगर मैं ऐसा करता हूं: sign_in User.make (: confirm_at => Time.now,: confirmation_sent_at => Time.now, ....) यह काम नहीं करता है। क्या आपको पता है कि मैं क्या कर सकता था? – Mattherick

+2

पुष्टि का उपयोग करने का प्रयास करें! उपयोगकर्ता = उपयोगकर्ता.मेक user.confirm! – guitsaru

+0

धन्यवाद आदमी! वह यह था! मुझे एक और आधा दिन googeling से बचाया :) – Mattherick