user_signed_in rails español ruby-on-rails devise

ruby-on-rails - español - rails authentication



Variable local indefinida o método `confirmar_at ''para#User (5)

Estoy usando Rails 3. Hay un posible duplicado here . Pero no resolvió mi problema, tampoco lo hizo ninguna otra solución.

Mi migración es la siguiente

class AddConfirmableToDevise < ActiveRecord::Migration def change change_table(:users) do |t| t.confirmable end add_index :users, :confirmation_token, :unique => true end end

Tengo devise :confirmable añadido en el modelo de User .

Mi rake db:migrate no da salida. y mi página de registro da el error:

undefined local variable or method ''confirmed_at'' for #User

¿Alguien tiene una pista?


A partir del último dispositivo, solo debe eliminar los comentarios de las siguientes líneas en la migración de usuarios de dispositivos. (2013 ....._ devise_create_users.rb)

# Confirmable t.string :confirmation_token t.datetime :confirmed_at t.datetime :confirmation_sent_at t.string :unconfirmed_email # Only if using reconfirmable


De acuerdo. Lo resolví. La migración está desactualizada. Generar nueva migración con el mismo código pero con otro nombre.

1. Ejecutar comando:

rails g migration add_confirmable_to_devise_v1

2.En el archivo de migración:

class AddConfirmableToDeviseV1 < ActiveRecord::Migration def change change_table(:users) do |t| t.confirmable end add_index :users, :confirmation_token, :unique => true end end

3. Entonces

rake db:migrate


Estoy usando Mongoid y tengo este mismo error. Agregué estos campos y conseguí que rspec se pusiera verde en mis 16 ejemplos.

field :confirmation_token, :type => String field :confirmed_at, :type => Time field :confirmation_sent_at, :type => Time field :unconfirmed_email, :type => String


Nota para mí. Alguien podría encontrarlo útil: lo que necesitamos son 2 comandos a continuación:

rake db:migrate:reset rake db:reset

Voila! ¡Funciona!


Para vincular la respuesta de @ DevDude con la respuesta aceptada, si ya tiene un modelo de Users existente al que necesita agregar confirmable, el código de migración completo para la versión de Devise actual a partir del 4/14 es:

class AddConfirmableToDeviseV1 < ActiveRecord::Migration def change change_table(:users) do |t| # Confirmable t.string :confirmation_token t.datetime :confirmed_at t.datetime :confirmation_sent_at t.string :unconfirmed_email # Only if using reconfirmable end add_index :users, :confirmation_token, :unique => true end end