次のインスタンス変数に格納されたフィールドのハッシュがあります。
@series_from_fred
このハッシュをに渡すと
Serial.create(@series_from_fred)
新しいシリアル (モデル名) の「行」が作成され、ハッシュ マップ内のパラメーターがシリアル モデルの行のフィールドにマップされます。
ただし、既存のシリアルを更新しようとすると
serial.update_attributes(@series_from_fred)
「シリアル」は
@serial.each do |serial|
次のエラーが表示されます。
NoMethodError in AdminsController#checkSerials
undefined method `stringify_keys' for #<Array:0x007fd1fe3085e0>
何か案は?
これは、Rails コンソールに移動して「Serial」と入力するとどうなるかです
Serial(id: integer, series_name: string, realtime_start: string,
realtime_end: string, title: string, observation_start: string,
observation_end: string, frequency: string, frequency_short: string,
units: string, units_short: string, seasonal_adjustment: string,
seasonal_adjustment_short: string, last_updated: string, popularity: string,
notes: text, created_at: datetime, updated_at: datetime)
実行時に API からデータを取得しているので、Rails コンソールに移動して「@series_from_fred」と入力すると、「nil」が返されます。ただし、 logger.info(@series_from_fred.to_s) を使用すると、ターミナル出力で @series_from_fred の値を「見る」ことができます。その出力は次のとおりです。
[{"realtime_start"=>"2013-02-28", "realtime_end"=>"2013-02-28",
"title"=>"Reserve Bank Credit - Securities Held Outright",
"observation_start"=>"1989-03-22", "observation_end"=>"2013-02-20",
"frequency"=>"Weekly, Ending Wednesday", "frequency_short"=>"W",
"units"=>"Billions of Dollars", "units_short"=>"Bil. of $",
"seasonal_adjustment"=>"Not Seasonally Adjusted", "seasonal_adjustment_short"=>"NSA",
"last_updated"=>"2013-02-22 08:32:54-06", "popularity"=>"47", "notes"=>"The amount of
securities held by Federal Reserve Banks. This quantity is the cumulative result of
permanent open market operations: outright purchases or sales of securities, conducted
by the Federal Reserve. Section 14 of the Federal Reserve Act defines the securities
that the Federal Reserve is authorized to buy and sell.", "series_name"=>"WSECOUT"}]