我的 Ruby on Rails 应用程序中有一个生产数据库,其中包含用户和其他内容。现在,在实现新功能时,我需要为每个现有用户创建一些新数据。有什么聪明的方法可以做到吗?也许是 Rake 脚本?
更多详细信息:
我有一个用户表。现在我添加了书签表。这个想法是,默认情况下每个用户都有 5 个带有预填充数据的书签。对于新用户来说很容易做到,但现有用户呢?在用户登录时创建数据是一种选择,但感觉有点脏。
谢谢!
最佳答案
我喜欢使用 rails runner
来完成这样的一次性脚本,它允许您在加载了 Rails env 的情况下轻松运行脚本。 。
我建议使用activerecord-import如果您有很多用户,可以加快速度。
我们可以在脚本目录中创建一个名为 make_bookmarks.rb 的脚本,如下所示:
require 'activerecord-import'
bookmarks = []
User.all.each do |user|
["value1","value2","value3","value4","value5"].each do |value|
bookmarks << user.bookmarks.new(:col => value)
end
end
# import the bookmarks all with bulk sql = much faster
Bookmark.import bookmarks
然后运行它rails runner script/make_bookmarks.rb
关于ruby-on-rails - Rails : migrating production database, 需要为每个现有用户创建新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6497656/