将.csv文件保存到数据库无法识别to_hash方法

iam*_*toc 1 ruby csv ruby-on-rails ruby-on-rails-2

根据此示例,以下方法:

require "csv"

def import_vault_data(filename)    
    fn = "#{RAILS_ROOT}/public/data/#{filename}"
    CSV.foreach(fn, :headers => true) do |row|
        House.create!(row.to_hash)    
    end
end
Run Code Online (Sandbox Code Playgroud)

正在产生这个错误:

undefined method `to_hash' for #<Array:0x104cc07b8>
Run Code Online (Sandbox Code Playgroud)

什么缺失的任何线索?

我正在使用rails 2.3.9

Rhy*_*hys 6

答案可能有点迟,但你需要:

CSV.foreach(file.path, headers: true) do |row|
Run Code Online (Sandbox Code Playgroud)

因为你不能调用to_hash,除非你在哈希中有标题