ruby on rails 3 - मैं कैसे सक्षम करूं: डेविस में पुष्टि योग्य?




ruby-on-rails-3 devise (4)

डेविस के नवीनतम संस्करण में नहीं है: डिफ़ॉल्ट रूप से पुष्टि योग्य सक्षम। मैंने पहले ही उपयोगकर्ता मॉडल में संबंधित कॉलम जोड़े हैं लेकिन सक्षम करने के तरीके के बारे में कोई कोड उदाहरण नहीं मिल रहा है: पुष्टि योग्य।

मुझे एक अच्छा उदाहरण कहां मिल सकता है या इसे सक्षम करने के लिए मुझे किस कोड की आवश्यकता है?


DRY के लिए, आप मेलर कॉन्फ़िगरेशन को कॉन्फ़िगर / प्रारंभकर्ता / mail.rb में भी डाल सकते हैं जैसे:

ActionMailer::Base.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => '[redacted]',
    :user_name            => '[redacted]',
    :password             => '[redacted]',
    :authentication       => 'plain',
    :enable_starttls_auto => true  }

ऊपर वर्णित एक्शनमेलर सेटिंग को कॉन्फ़िगर करने के बाद मुझे एक नया उपयोगकर्ता पंजीकृत करने के बाद दिखाई देने वाले त्रुटि पृष्ठ को ठीक करने के लिए कॉन्फ़िगरेशन / वातावरण / development.rb फ़ाइल में एक अंतिम जोड़ा बनाना था:

config.action_mailer.default_url_options = {: host => 'localhost'}

इस समाधान के बारे में अधिक जानकारी: Heroku / devise - लिंक करने के लिए मेजबान लापता! कृपया प्रदान करें: होस्ट पैरामीटर या default_url_options सेट करें [: ​​होस्ट]


पुष्टि करने योग्य "सक्षम" करने के लिए, आपको बस इसे अपने मॉडल में जोड़ना होगा, उदाहरण के लिए:

class User
  # ...
  devise :confirmable , ....
  # ...
end

इसके बाद, आपको एक माइग्रेशन बनाना और चलाया जाना चाहिए जो आपके मॉडल में आवश्यक कॉलम जोड़ता है:

# rails g migration add_confirmable_to_devise
class AddConfirmableToDevise < ActiveRecord::Migration
  def self.up
    add_column :users, :confirmation_token, :string
    add_column :users, :confirmed_at,       :datetime
    add_column :users, :confirmation_sent_at , :datetime
    add_column :users, :unconfirmed_email, :string

    add_index  :users, :confirmation_token, :unique => true
  end
  def self.down
    remove_index  :users, :confirmation_token

    remove_column :users, :unconfirmed_email
    remove_column :users, :confirmation_sent_at
    remove_column :users, :confirmed_at
    remove_column :users, :confirmation_token
  end
end

देखें: डेविस का उपयोग कर मौजूदा साइट पर पुष्टिकरण मॉड्यूल जोड़ना

मैं यह देखने के लिए स्रोत कोड जांचने की अनुशंसा करता हूं कि कैसे पुष्टि योग्य कार्य करता है:

https://github.com/plataformatec/devise/blob/master/lib/devise/models/confirmable.rb

आप डेविस पर रेलस्कास्ट भी देख सकते हैं:

http://railscasts.com/episodes/209-introducing-devise

इसके बाद गिटहब पर उदाहरण अनुप्रयोगों की खोज करना सबसे अच्छा होगा


यदि आप पहले से ही अपने ऐप में डिवाइसेज स्थापित कर चुके हैं, और बाद में "पुष्टि करने योग्य" जोड़ना चाहते हैं:

rails generate devise:views

जैसा कि पियट्र द्वारा वर्णित है, भागो

rails generate devise:views confirmable

"पुष्टियोग्य" के लिए आवश्यक केवल विचारों का उत्पादन करना। आप इस तरह के आउटपुट देखेंगे:

rails generate devise:views confirmable
    invoke  Devise::Generators::SharedViewsGenerator
    create    app/views/confirmable/mailer
    create    app/views/confirmable/mailer/confirmation_instructions.html.erb
    create    app/views/confirmable/mailer/reset_password_instructions.html.erb
    create    app/views/confirmable/mailer/unlock_instructions.html.erb
    create    app/views/confirmable/shared
    create    app/views/confirmable/shared/_links.erb
    invoke  form_for
    create    app/views/confirmable/confirmations
    create    app/views/confirmable/confirmations/new.html.erb
    create    app/views/confirmable/passwords
    create    app/views/confirmable/passwords/edit.html.erb
    create    app/views/confirmable/passwords/new.html.erb
    create    app/views/confirmable/registrations
    create    app/views/confirmable/registrations/edit.html.erb
    create    app/views/confirmable/registrations/new.html.erb
    create    app/views/confirmable/sessions
    create    app/views/confirmable/sessions/new.html.erb
    create    app/views/confirmable/unlocks
    create    app/views/confirmable/unlocks/new.html.erb 

फिर आप अपने प्रोजेक्ट में इन फ़ाइलों को सीधे अपने एप्लिकेशन की तरह स्टाइल करने में सक्षम होंगे। आप जेनरेट किए गए मेलर दृश्यों के माध्यम से ईमेल भेजते हुए संदेश में मैसेजिंग भी बदल पाएंगे।

अंत में, अपने ऐप / कॉन्फ़िगरेशन / वातावरण / {environment_name} .rb फ़ाइल में config.action_mailer.delivery_method और config.action_mailer.smtp_settings जोड़ने के लिए मत भूलना। यह मेरी उत्पादन.आरबी फ़ाइल जैसा दिखता है:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => '[redacted]',
    :user_name            => '[redacted]',
    :password             => '[redacted]',
    :authentication       => 'plain',
    :enable_starttls_auto => true  }






confirmation