2013-03-22 62 views
0

我在Rails中有股票价格历史记录的模型,我想将大量从雅虎财经api导入的数据输入到我的模型中。未定义的方法each_with_index activerecord-import

这是我有:

columns = [:date,:open,:high,:low,:close,:volume,:adjusted_close,:asset_symbol] 
values = ['2013-03-22',1,2,3,4,5,6,'YHOO'] 

AssetHistory.import columns,values 

这将导致一个错误说:undefined method each_with_index for '2013-03-22':String from .../activerecord-import/import.rb

注意,在我的价值观阵列的日期居然类型日期是在我的模型。 (这是问题吗?)

我使用Activerecord-import 0.3.1和Rails 3.2。如果有问题,我也使用Postgresql。

我的资产历史数据模型注释:

# Table name: asset_histories 
# 
# id    :integer   not null, primary key 
# date   :date 
# open   :float 
# high   :float 
# low   :float 
# close   :float 
# volume   :integer 
# adjusted_close :float 
# asset_symbol :string(255) 
# asset_id  :integer 
# 

class AssetHistory < ActiveRecord::Base 
    attr_accessible :adjusted_close, :close, :date, :high, :low, :open, :volume, :asset_id, :asset_symbol 
    has_and_belongs_to_many :assets 
    validates_uniqueness_of :asset_symbol, scope: [:date] 
end 

任何原因是什么这个问题是什么?

回答

1

将对象导入模型时,我们应该调用下面的方法。

Model.import <array_of_cols>, <array_of_values> 

例如:

Sample.import [:field1, :field2], [["value-a1", "value-a2"], ["value-b1", "value-b2"]] 

上面的例子将创建样品模型的两个记录。

所以在你的情况下,请提供这样的。

AssetHistory.import columns, [values] 

希望这会起作用。