0

Rails に株価履歴のモデルがあり、そのデータを yahoo ファイナンス API からモデルに大量にインポートしたいと考えています。

これは私が持っているものです:

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

この問題の理由は何ですか?

4

1 に答える 1

1

オブジェクトをモデルにインポートする際に、以下のようにメソッドを呼び出す必要があります。

Model.import <array_of_cols>, <array_of_values>

例えば:

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

上記の例では、Sampleモデルの 2 つのレコードが作成されます。

したがって、あなたの場合は、このように提供してください。

AssetHistory.import columns, [values]

これがうまくいくことを願っています。

于 2013-03-22T19:52:08.393 に答える