我使用的是Rails 3。可能有一个重复的here。但是它没有解决我的问题,其他的解决方案也没有。
我的迁移如下所示
class AddConfirmableToDevise < ActiveRecord::Migration
def change
change_table(:users) do |t|
t.confirmable
end
add_index :users, :confirmation_token, :unique => true
end
end
我确实在User
模型中添加了devise :confirmable
。
我的rake db:migrate
没有输出。我的注册页面给出错误:
undefined local variable or method 'confirmed_at' for #User
有人知道吗?
6条答案
按热度按时间af7jpaap1#
好的。我解决了这个问题。迁移已经过时。用相同的代码生成新的迁移,但使用另一个名称。
1.运行命令:
2.在迁移文件中:
3.Then
2skhul332#
对于最新的设备,您只需删除以下有关设备用户迁移的行中的注解..(2013...._devise_create_users.rb)
nkkqxpd93#
给我自己留个条。也许有人会觉得有用:我们需要的是下面的2个命令:
哇!成功了!
zour9fqk4#
为了将@DevDude的答案与已接受的答案联系起来-如果您已经有一个
Users
模型需要添加confirmable,截至4月14日的Devise当前版本的完整迁移代码为:3hvapo4f5#
我在使用Mongoid时也遇到了同样的错误,我添加了这些字段,并在我的16个示例中使rspec变为绿色。
koaltpgm6#
将confirmable添加到用户模型后,deviegem需要应用程序在用户表中包含confirmation_token、confirmated_at、confirmated_sent_at、unconfirmed_email和confirmation_token。
1.使用以下命令生成新迁移
rails g迁移添加可确认到设备
1.将代码添加到新创建的迁移文件中
1.运行迁移
rails数据库:迁移