设计 - 无法添加确认功能

时间:2015-02-16 10:41:59

标签: ruby-on-rails ruby

我知道之前已经问过这个问题,但没有一个答案对我有帮助。

我有以下情况。

  • 我安装了设计(一切运作良好)
  • 想要包含确认邮件,我这样做

    1. 包含:在用户模型中确认
    2. 取消注释我的迁移文件中的相关行(请参阅下面的整个文件)。
    3. 运行rake db:migrate(和重新启动的服务器)

但是当我现在尝试注册时,我会“”     未定义的局部变量或X的方法`confirmed_at'....

我在这里缺少什么?

class DeviseCreateUsers< ActiveRecord的::迁移   改变     create_table(:users)do | t |       ##数据库可验证       #t.string:name       t.string:email,null:false,默认值:“”       t.string:encrypted_pa​​ssword,null:false,默认值:“”

  ## 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

端 端

1 个答案:

答案 0 :(得分:1)

您说,您更改了迁移并重新运行rake db:migrate 改变已经迁移的迁移并不是一个好主意 Rails不会重新调整迁移中的更改。因此,除非您确实知道,您尚未部署或检入上次迁移,并且可以放弃当前表格中的所有数据不要更改迁移

而是创建一个添加新字段的新迁移。

如果你真的知道,你在做什么,你可以回滚最后(甚至是一个视图)迁移,更改它然后再次运行:

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