undefined local variable or method `confirmed_at' for #User

后端 未结 5 1111
一个人的身影
一个人的身影 2021-01-31 10:43

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         


        
相关标签:
5条回答
  • 2021-01-31 10:53

    I'm using Mongoid and got this same error. I added these fields and got rspec to go green on my 16 examples.

    field :confirmation_token,   :type => String
    field :confirmed_at,         :type => Time
    field :confirmation_sent_at, :type => Time
    field :unconfirmed_email,    :type => String
    
    0 讨论(0)
  • 2021-01-31 10:54

    Note for myself. Someone might find it helpful: What we need is 2 commands below:

        rake db:migrate:reset 
        rake db:reset
    

    Voila! It works!

    0 讨论(0)
  • 2021-01-31 11:07

    As of the latest devise, you just need to remove comments from the following lines on the devise users migration.. (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
    
    0 讨论(0)
  • 2021-01-31 11:12

    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
    
    0 讨论(0)
  • To tie in @DevDude's answer with the accepted answer - if you already have an existing Users model to which you need to add confirmable, the full migration code for the version of Devise current as of 4/14 is:

    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
    
    0 讨论(0)
提交回复
热议问题