3

アプリのローカル ファイル システム上のファイルから csv ファイルを読み取ることができるようにするこの rake タスクを作成しましたが、これを調整して URL からファイルを読み取らせるにはどうすればよいですか?

desc "This class will read a csv file and display its contents on the screen"

 task :read_csv => :environment do |t, args|
 require "csv"

 csv_text = File.read('someFile.csv')
 csv = CSV.parse(csv_text, :headers=>true)
 csv.each do |row|
   puts row
 end
end

コードまたは現在のリンクのいずれかで誰かが私を助けてくれれば幸いです。私が見つけたリンクのほとんどは、FasterCSV が ruby​​ の一部ではなかった以前のバージョンのレール用です。

ありがとう

4

3 に答える 3

5

NET::HTTP の使用についてはどうですか?

desc "This class will read a csv file from url and display its contents on the screen"

  task :read_csv => :environment do |t, args|
  require "csv"
  require 'net/http'

  uri = URI('http://www.xxx.ccc.xxx.ca/~xxx/xxx.csv')
  csv_text = Net::HTTP.get(uri)
  csv = CSV.parse(csv_text, :headers=>true)
  csv.each do |row|
    puts row
  end
end

これは、https を使用せずに URL からのみ取得するためのちょっとした調整ですが、アイデアはわかりましたか? :)

于 2012-07-11T06:17:38.170 に答える
0

FasterCSVとにかくファイル全体を文字列にロードしているので、この質問は とはほとんど関係ありません。そこで問題は、「URL から文字列にデータをフェッチするにはどうすればよいか」ということになります。

于 2012-07-11T06:10:04.193 に答える