这里有一个快速的测试,我在我的模型制作:
1. pry(main)> output = JobUser.first(10).to_s
=> "[#<JobUser id: 10001, instagram_user_id: 297705889, job_id: 2, invited: true, created_at: \"2013-09-23 21:53:37\", updated_at: \"2013-09-23 21:53:37\">, #<JobUser id: 10002, instagram_user_id: 36823356, job_id: 2, invited: true, created_at: \"2013-09-23 21:53:37\", updated_at: \"2013-09-23 21:53:37\">, #<JobUser id: 10003, instagram_user_id: 509682835, job_id: 2, invited: true, created_at: \"2013-09-23 21:53:37\", updated_at: \"2013-09-23 21:53:37\"> ....
2.
parsed = output.gsub('#<', '').gsub('>', '').gsub(/^\[/, '').gsub(/\]$/, '').split('JobUser').map(&:strip)
=>
"id: 10001, instagram_user_id: 297705889, job_id: 2, invited: true, created_at: \"2013-09-23 21:53:37\", updated_at: \"2013-09-23 21:53:37\",",
"id: 10002, instagram_user_id: 36823356, job_id: 2, invited: true, created_at: \"2013-09-23 21:53:37\", updated_at: \"2013-09-23 21:53:37\",",
"id: 10003, instagram_user_id: 509682835, job_id: 2, invited: true, created_at: \"2013-09-23 21:53:37\", updated_at: \"2013-09-23 21:53:37\"...
3. parsed.shift
因为在数组的第一个元素将是一个空字符串
4. records = parsed.map { |serialized_record| JobUser.new(eval "{ #{serialized_record} }") }
那么你或许应该运行类似records.each { |record| record.save }
请注意,您应该用您的型号名称替换JobUser
。 关键是你必须解析字符串并将其插回到数据库中
祝你好运!
谢谢你的回答! 如果我为模型属性之一添加了“#
Dmitri
谢谢!这非常好!干杯! :) – Dmitri
小心用双引号,我在包含日期的时候遇到了问题,日期时间里有双引号,但是通过执行'str ='blah''好像有效 –