1

根据此示例,以下方法:

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

正在产生此错误:

undefined method `to_hash' for #<Array:0x104cc07b8>

关于缺少什么的任何线索?

我正在使用导轨 2.3.9

4

3 回答 3

6

答案可能有点晚,但您需要:

CSV.foreach(file.path, headers: true) do |row|

因为你不能调用 to_hash 除非你在散列中有标题

于 2013-11-15T13:46:29.597 回答
2

试试这个 ruby​​ 1.8.7

House.create!(row.hash)   
于 2012-10-06T04:56:46.013 回答
2

你也可以

House.create!(Hash[row])
于 2012-10-06T05:04:27.190 回答