我不小心从数据库中删除了1000个对象,现在尝试重新创建这些对象。幸运的是,我能够滚动查看控制台输出并找到记录。我复制并粘贴了以下格式的控制台输出:
[#<Assignment id: 276503, school_id: 2091, listing_id: 251572, created_at: "2018-08-30 05:02:36", updated_at: "2018-08-30 05:02:36">, #<Assignment id: 279532, school_id: 1233, listing_id: 252702, created_at: "2018-08-30 06:19:12", updated_at: "2018-08-30 06:19:12">]
#...
我无法通过控制台将输出分配给变量,因此我可以弄清楚如何使用此数据在db中重新创建对象:
irb(main):040:0> a = [#<Assignment id: 276503, school_id: 2091, listing_id: 251572, created_at: "2018-08-30 05:02:36", updated_at: "2018-08-30 05:02:36">, #<Assignment id: 279532, school_id: 1233, listing_id: 252702, created_at: "2018-08-30 06:19:12", updated_at: "2018-08-30 06:19:12">]
irb(main):041:1*
有人知道如何将控制台输出转换为我数据库中的对象吗?
答案 0 :(得分:1)
如果在控制台中将大型数组分配给变量时遇到问题,则可以尝试使用rake任务。
array.each do |e|
options = e.split(',')
school_id = options.detect{|i| i.match?(/school_id/)}.split(':').last
listing_id = options.detect{|i| i.match?(/listing_id/)}.split(':').last
Assignment.create(school_id: school_id, listing_id: listing.id)
end
这应该有效。这是相当消耗的,但从另一个角度看,又简单又快速。
答案 1 :(得分:0)
我会将该输出粘贴到sublime或任何其他文本编辑器上,然后格式化
成为有用的东西...
一堆inserts
使用SQL或只是.create()
然后将其粘贴到控制台上