2013-03-22 67 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] 

希望這會起作用。