このjson APIの出力をデータベースに保存するにはどうすればよいですか?このjson APIの出力をデータベースに保存するにはどうすればよいですか?
JSON出力は、このようなものです:
[{"id"=>758426,
"email"=>"[email protected]",
"created_at"=>"2014-09-23T16:23:56Z",
"updated_at"=>"2014-09-23T16:23:58Z",
"status"=>"Customer",
"custom_status"=>nil,
"first_name"=>"Name",
"last_name"=>"Name",
"latest_visitor"=>
{"id"=>13940436, "tracking_code"=>"f29a780c-615a-41df-a2b1-72e5af2c466b"},
"url"=>{"id"=>2452457, "url"=>"http://www.website.com/#_l_1a"},
"referrer"=>nil,
"affiliate"=>{"id"=>35521, "email"=>"[email protected]"},
"campaign"=>nil,
"search_term"=>nil,
"tracking_code"=>"f29a780c-615a-41df-a2b1-72e5af2c466b"},
{"id"=>758845,
"email"=>"[email protected]",
"created_at"=>"2014-09-23T19:27:53Z",
"updated_at"=>"2016-03-31T19:42:17Z",
"status"=>"Cancelled",
"custom_status"=>"",
"first_name"=>"Name",
"last_name"=>"Name",
"latest_visitor"=>
{"id"=>14302036, "tracking_code"=>"d61e4f25-59ac-4e9a-b818-d5bc4ad73d62"},
"url"=>nil,
"referrer"=>nil,
"affiliate"=>{"id"=>35579, "email"=>"[email protected]"},
"campaign"=>nil,
"search_term"=>nil,
"tracking_code"=>"d61e4f25-59ac-4e9a-b818-d5bc4ad73d62"}]
私の問題は、に含まれるオブジェクトを参照するために返された配列のために名前がないということですので、私はフィールドをつかむために使用するのか分かりませんそれらを保存します。このラインである
lib/dyno.rb:30:in `block in <top (required)>': undefined method `[]' for nil:NilClass (NoMethodError)
from lib/dyno.rb:21:in `each'
from lib/dyno.rb:21:in `<top (required)>'
:あなたの例のハッシュでreferrer_id: item['referrer']['id'],
ハッシュを返したのは何ですか? 2つの要素を持つ配列があり、それぞれがハッシュです。他の配列と同様に、その要素にアクセスすることができます。 'arr [0]'、 'arr [1]'など、または 'arr.each'など。キーがモデルの属性名と一致していて、Railsを使用している場合は、 'create'に直接渡すことができます。 'MyModel.create(arr)'を実行すると、2つのレコードが作成されます。 –
申し訳ありませんが、私はアレイと言っていました。配列に名前を付けるだけでいいですか?私は現在、値を保存しようとしているコードで質問を更新しました。 – NeyLive
このコードは正確には動作しません。 – infused