tutorial rails instalar ejemplos ruby-on-rails-3 devise confirmation

ruby-on-rails-3 - instalar - rspec rails devise



¿Cómo activo: confirmable en Devise? (6)

La versión más reciente de Devise no tiene: confirmable habilitado por defecto. Ya agregué las columnas respectivas al modelo de usuario pero no puedo encontrar ningún ejemplo de código de cómo habilitar: confirmable.

¿Dónde puedo encontrar un buen ejemplo o qué código necesito para habilitarlo?




Esta pregunta parece ser extraña ;-) Si escribiste alguna migración por igual:

change_table(:users) do |t| t.confirmable end add_index :users, :confirmation_token, :unique => true

y como dijiste, poco cambio en el modelo (pasando adicional =>: confirmable para diseñar) como sigue:

devise :database_authenticatable, :registerable, :confirmable

ahora puedes generar algunas vistas (si no lo hiciste)

rails generate devise:views

Puede ir a la aplicación / vistas / idear / confirmaciones / new.html.erb y comprobar cómo se ve o cambiarla. Además, puede inspeccionar la aplicación / vistas / idear / confirmaciones / compartida / _links.erb => hay línea:

<%- if devise_mapping.confirmable? && controller_name != ''confirmations'' %>

Esta condición verifica si confirmable está activado así que ... técnicamente si todo salió bien debería funcionar OOTB. Después de crear una nueva cuenta, en el registro, debería ver las líneas donde se envía el correo de confirmación con el enlace apropiado. Se desencadena:

Rendered devise/mailer/confirmation_instructions.html.erb

así que tienes el siguiente lugar donde puedes personalizarlo un poco

¿Cómo personalizar la estrategia de confirmación? Por favor, pregunta exactamente qué quieres lograr. Usted puede verificar el camino de la gema. En /lib/devise/models/confirmable.rb, algunos comentarios podrían ser útiles.

Saludos


Para DRY, también puede poner la configuración de correo en config / initializers / mail.rb como:

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


Si ya has instalado el programa en tu aplicación, y quieres agregar "confirmable" más tarde, en lugar de ejecutar:

rails generate devise:views

como lo menciona Piotr, corre

rails generate devise:views confirmable

para producir solo las vistas necesarias para "confirmable". Verás resultados como este:

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

A continuación, podrá acceder a estos archivos directamente en su proyecto para diseñarlos como su aplicación. También podrá cambiar los mensajes en los correos que Devise envía a través de las vistas de correo generadas.

Por último, no olvides agregar config.action_mailer.delivery_method y config.action_mailer.smtp_settings en tu archivo app / config / environments / {environment_name} .rb. Así es como se ve mi archivo production.rb:

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 }


para "habilitar" confirmable, solo tiene que agregarlo a su modelo, por ejemplo:

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

después de eso, deberá crear y ejecutar una migración que agregue las columnas requeridas a su modelo:

# 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

ver: Agregar módulo confirmable a un sitio existente usando Devise

Recomiendo comprobar el código fuente para ver cómo funciona Confirmable:

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

También puedes consultar RailsCast en Devise:

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

A continuación, sería mejor buscar aplicaciones de ejemplo en GitHub