ruby-on-railsdevise

undefined local variable or method `confirmed_at' for #User


I am using Rails 3. There is a possible duplicate here. But it did not solve my problem, neither did any other solution.

My migration is as follows

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

I do have devise :confirmable added in User model.

My rake db:migrate gives no output. and my sign up page gives the error:

undefined local variable or method 'confirmed_at' for #User

Anybody has a clue?


Solution

  • Ok. I solved it. The migration is outdated. Generate new migration with same code but another name.

    1.Run command:

    rails g migration add_confirmable_to_devise_v1
    

    2.In the migration file:

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

    3.Then

    rake db:migrate