获取csv feed并将其放入rails中的数据库中

时间:2016-01-04 11:03:40

标签: ruby-on-rails csv

所以从头开始,我有一个CSV提要。它目前有2596行(Yay)

此Feed经常更新,我想要有这个csv提要,(当我点击它立即下载的链接作为csv文件时,请记住。)每天随机填充我的数据库(例如每天早上5点,数据库表将通过csv擦除并重新填充。 (我访问csv的方式是通过网址)

我如何使用rails来解决这个问题?我不知道是否有任何宝石或任何我可以使用的东西。

萨姆

1 个答案:

答案 0 :(得分:0)

你不会通过rails来实现 - rails是一个web框架,这更像是一个后台任务。如果数据库的数量需要知道您的应用程序结构,我将其设置为lib / tasks / populate.rake中的rake任务 如果没有更多详细信息,您的问题可以得到广泛的回答,但通常类似下面的内容应该有效。

编辑:删除用户并从假设结构重新创建

require 'open-uri'
namespace :populate do
   desc 'wipes the database and recreates from CSV'
   task reload: :environment do 
       # Remove all users
       User.delete_all
       CSV.new(open(YOUR_CSV_URL)).each do |row|
         # do something with the row
         User.create(name: row[0], address: row[1])
       end
   end
end

然后你可以使用Cron或同等版本在凌晨5点调用它 cd /path/to/your/web/app && RAILS_ENV=production bundle exec rake populate:reload