首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未定义的局部变量或#User的方法`confirmed_at

未定义的局部变量或#User的方法`confirmed_at
EN

Stack Overflow用户
提问于 2012-02-02 15:16:04
回答 5查看 23.7K关注 0票数 21

我使用的是Rails3,可能有重复的here。但它没有解决我的问题,其他任何解决方案也没有。

我的迁移过程如下

代码语言:javascript
复制
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没有输出。我的注册页面显示错误:

代码语言:javascript
复制
undefined local variable or method 'confirmed_at' for #User

有谁有线索吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-02 15:32:10

好的。我解决了。迁移已经过时了。使用相同的代码但不同的名称生成新的迁移。

1.运行命令:

代码语言:javascript
复制
rails g migration add_confirmable_to_devise_v1

2.在迁移文件中:

代码语言:javascript
复制
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

代码语言:javascript
复制
rake db:migrate
票数 28
EN

Stack Overflow用户

发布于 2013-01-16 03:55:01

在最新的devise版本中,您只需从devise用户迁移的以下几行中删除注释。(2013....._devise_create_users.rb)

代码语言:javascript
复制
  # Confirmable
  t.string   :confirmation_token
  t.datetime :confirmed_at
  t.datetime :confirmation_sent_at
  t.string   :unconfirmed_email # Only if using reconfirmable
票数 20
EN

Stack Overflow用户

发布于 2012-11-20 22:19:53

给我自己写个便条。有些人可能会发现它很有用:我们需要的是下面的两个命令:

代码语言:javascript
复制
    rake db:migrate:reset 
    rake db:reset

瞧!它起作用了!

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9108460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档