【发布时间】:2014-06-25 12:08:47
【问题描述】:
在我们的应用程序中,我们希望将用户从旧表迁移到由 devise gem 管理的新表。我用属性old_id 链接了这两个表,所以我总是可以返回到以前的用户信息并从那里获取其他数据。这是迁移脚本(一旦创建表):
class PopulateV3idInUsersTable < ActiveRecord::Migration
def up
User.all.each do |u|
old_u = OldUser.find_by( email: u.email )
unless old_u.nil?
u.old_id = old_u.id
u.skip_confirmation!
u.save
end
end
end
end
数据库已正确更新。问题是,每次我们用他的旧 id 更新用户时,脚本都会向用户发送一封确认邮件,这真的不好......
在之前的代码中,我添加了u.skip_confirmation!,但还是不行。我还尝试了其他可能性,例如u.confirm! 和u.confirmation_token = nil ; u.confirmed_at = Time.now,但都失败了。
你有什么想法吗?谢谢。
【问题讨论】:
-
不能使用
update_allapidock.com/rails/ActiveRecord/Base/update_all/class跳过活动记录回调
标签: ruby-on-rails devise actionmailer