Ruby on rails Rake迁移:如何为所有用户在迁移中输入auth_令牌

Ruby on rails Rake迁移:如何为所有用户在迁移中输入auth_令牌,ruby-on-rails,migration,Ruby On Rails,Migration,我最近向我的用户添加了一个名为auth_token的新列,该列应该在创建新用户时生成 如何通过迁移将身份验证令牌添加到现有用户? 资料来源: 另外,我在中找不到这个,所以请不要将我发送到那里。class DoThisThing>

我最近向我的用户添加了一个名为
auth_token
的新列,该列应该在创建新用户时生成

如何通过迁移将身份验证令牌添加到现有用户?
资料来源:

另外,我在中找不到这个,所以请不要将我发送到那里。

class DoThisThingclass DoThisThing < ActiveRecord:: Migration
   def self.up
      @users = Users.all
      @users.each do |user|
         user.auth_token = generate_token
         user.save
      end
   end
   def self.down
      puts "non recoverable migration"
   end
   def generate_token
      123456789
   end
end
自我介绍 @users=users.all @用户。每个do |用户| user.auth\u token=生成\u token user.save 结束 结束 def自动关闭 放置“不可恢复的迁移” 结束 def生成令牌 123456789 结束 结束
您可以将任何喜欢的标准Ruby/Rails代码放入迁移中。只需注意stdin/out,以及您需要的任何特定lib是否已加载到迁移的内存空间。

您是否正在尝试向现有用户添加
auth_token
?我认为您应该使用
db/seeds.rb
而不是添加新的迁移类。当您需要更改数据库结构而不是其内容时,您希望使用迁移。您可以更改登录名并在中创建,以便为每个用户获取唯一的内容,但类似的操作也可以。您可以解释一下您的方法吗?了解各种方法总是很好的。上面提到的迁移不起作用。我在“向上”部分遇到了错误:(你能发布错误吗?我在迁移中经常使用这样的代码。如果执行rake db:migrate--traceCan not:/I已经重置了数据库以重新输入用户>>