我知道之前已经问过这个问题,但没有一个答案对我有帮助。
我有以下情况。
想要包含确认邮件,我这样做
但是当我现在尝试注册时,我会“” 未定义的局部变量或X的方法`confirmed_at'....
我在这里缺少什么?
class DeviseCreateUsers< ActiveRecord的::迁移 改变 create_table(:users)do | t | ##数据库可验证 #t.string:name t.string:email,null:false,默认值:“” t.string:encrypted_password,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
端 端
答案 0 :(得分:1)
您说,您更改了迁移并重新运行rake db:migrate
改变已经迁移的迁移并不是一个好主意
Rails不会重新调整迁移中的更改。因此,除非您确实知道,您尚未部署或检入上次迁移,并且可以放弃当前表格中的所有数据不要更改迁移。
而是创建一个添加新字段的新迁移。
如果你真的知道,你在做什么,你可以回滚最后(甚至是一个视图)迁移,更改它然后再次运行:
rake db:rollback STEP=1
# edit your migration
rake db:migrate