hta*_*irt 2 ruby csv ruby-on-rails
我想读取由我的一个控制器导出生成的CSV文件.这是简单的代码:
def export_houses
houses_file = open("http://127.0.0.1:3000/houses/export.csv")
houses = CSV.open(houses_file, 'r:bom|utf-8', { headers: true })
...
end
Run Code Online (Sandbox Code Playgroud)
问题发生在该CSV.open行,我收到以下错误消息:
TypeError: no implicit conversion of StringIO into String
from /Users/htaidirt/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/csv.rb:1256:in `initialize'
Run Code Online (Sandbox Code Playgroud)
houses_file是正确的找到.这是一StringIO堂课,但我想要一File堂课使用CSV.open.
你知道怎么办吗?谢谢.
Yan*_*ERY 14
您可以从http服务器读取csv文件,如下所示:
require 'open-uri'
require 'csv'
url = 'http://127.0.0.1:3000/houses/export.csv'
houses = CSV.new(open(url), :headers => :first_row)
Run Code Online (Sandbox Code Playgroud)
或者你可以用解析方法解析它
require 'open-uri'
require 'csv'
url = 'http://127.0.0.1:3000/houses/export.csv'
houses = CSV.parse(open(url).read, :headers => true)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
8588 次 |
| 最近记录: |