user3706202
user3706202

Reputation: 215

Devise - cant add confirmation functionality

I know this question has been asked before but none of the answers helped me.

I have the following situation.

When I try to sign up now however, I get "" undefined local variable or method `confirmed_at' for X....

What am I missing here?

class DeviseCreateUsers < ActiveRecord::Migration def change create_table(:users) do |t| ## Database authenticatable # t.string :name t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: ""

  ## Recoverable
  t.string   :reset_password_token
  t.datetime :reset_password_sent_at

  ## Rememberable
  t.datetime :remember_created_at

  ## Trackable
  t.integer  :sign_in_count, default: 0, null: false
  t.datetime :current_sign_in_at
  t.datetime :last_sign_in_at
  t.string   :current_sign_in_ip
  t.string   :last_sign_in_ip

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

  ## Lockable
  # t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
  # t.string   :unlock_token # Only if unlock strategy is :email or :both
  # t.datetime :locked_at


  t.timestamps
end

add_index :users, :email,                unique: true
add_index :users, :reset_password_token, unique: true
add_index :users, :confirmation_token,   unique: true
# add_index :users, :unlock_token,         unique: true

end end

Upvotes: 1

Views: 121

Answers (1)

Martin M
Martin M

Reputation: 8638

You say, you changed your migration and rerun rake db:migrate.
It's not a good idea to change migrations, that had already been migrated.
Rails does not reconise changes in migrations. So unless you really know, that your last migration is not deployed or checked in yet and all data in your current table can be discarted don't change migrations.

Instead create a new migration that adds the new fields.

If you really know, what you are doing, you can roll back the last (or even a view) migration(s), change it and then run it again:

rake db:rollback STEP=1
# edit your migration
rake db:migrate

Upvotes: 1

Related Questions