0

最近のプロジェクトで発生している問題を解決しようと頭を悩ませています。シナリオは次のとおりです。

今後のウェビナーを取得するために GoToWebinar API を呼び出しています。すべてが正常に機能しており、ウェビナーは次のようにハッシュの形式で取得されます。

[
{
"webinarKey":5303085652037254656,
"subject":"Test+Webinar+One",
"description":"Test+Webinar+One+Description",
"times":[{"startTime":"2011-04-26T17:00:00Z","endTime":"2011-04-26T18:00:00Z"}]
},
{
"webinarKey":9068582024170238208,
"name":"Test+Webinar+Two",
"description":"Test Webinar Two Description",
"times":[{"startTime":"2011-04-26T17:00:00Z","endTime":"2011-04-26T18:00:00Z"}]
}
]

このハッシュを CSV ファイルに入力するために 1 日 1 回実行する rake タスクを作成しました。次に、コントローラー アクションで CSV ファイルを読み取り、ビューに入力します。

CSVファイルにデータを入力するコードは次のとおりです。

g = GoToWebinar::API.new()
@all_webinars = g.get_upcoming_webinars
CSV.open("#{Rails.root.to_s}/public/upcoming_webinars.csv", "wb") do |csv|
  @all_webinars.each do |webinar|
    webinar.to_a.each {|elem| csv << elem}
  end
end

受信した情報をハッシュ形式で保存して、順序が保持されるように CSV ファイルに保存する方法と、CSV ファイルから情報を読み取る方法を見つけるのに助けが必要です。まったく同じ方法でコントローラー アクションにハッシュを入力します。

4

2 に答える 2

0

これを達成するために行ったすべての例と作業から学んだことから、このタイプの機能を回避する最良の方法は、レーキタスクを作成してデータベースに情報を入力し、保存された情報を使用してビューに入力することだと思います.

于 2012-05-13T10:13:31.150 に答える
0

ハッシュのキーを (定数であるため) CSV ファイルのヘッダーとして使用します。次に、各要素を押し込みます。

g = GoToWebinar::API.new()
@all_webinars = g.get_upcoming_webinars
headers= @all_webinars.keys
CSV.open("#{Rails.root.to_s}/public/upcoming_webinars.csv", "wb", headers: headers) do |csv|
  @all_webinars.each do |webinar|
    webinar.to_a.each {|elem| csv << elem}
  end
end

ただし、ハッシュ値内のすべてのデータが平坦化されていることを確認する必要があります。時間の配列内のそのハッシュを処理する必要があります (おそらく時間を削除し、ハッシュに startTime および endTime キーを含めます)。

于 2012-05-07T00:10:59.613 に答える