APIコールからすべてのマーケットデータを更新しようとしています。Railsで関連付けられたオブジェクトをメソッドで更新する
私は多くのマーケットを含むプラットフォームを持っています。市場には高値、低価格、最新価格などがあります。
関連するコレクションを反復処理して更新する方法を呼び出すことはできません。たぶん私は構造全体が正しくないかもしれませんが、わかりません。
私はmarket.updateメソッドを使用してAPI呼び出しでデータを更新するのが理にかなっていると思っていました。私はプラットフォームコントローラ内のすべての組み合わせを試してみた
<% @platform.markets.each do |market| %>
<%= market.market_name %>
<%= market.high %>
<%= market.low %>
<%= link_to 'Update', [market.platform, market],
:method => :put %>
<% end %>
プラットフォームビューで正常に動作しますが、私は、私は可能プラットフォームのすべての市場を更新するには、この操作を行うべきか見当がつかない
class MarketsController < ApplicationController
def update
@platform = Platform.find(params[:platform_id])
@market = @platform.markets.find(params[:id])
@market.api_get_market_summary
@market.save
redirect_to @market.platform
end
。
class PlatformsController < ApplicationController
def update
@platform = Platform.find(params[:id])
@platform.markets.each do |market|
market.update(:id => market.id) # this obviously doesn't work
end
redirect_to @platform
end
ここですべての属性をupdate_attributes関数で更新する必要がありますか?
オブジェクトが作成されたときにマーケットAPIの更新を呼び出して、そこでデータが初期化されるようにします。
どうすればよいですか?
もう1つのプラットフォームを追加した場合、このAPIが使用するさまざまなAPIリクエストをどのように処理できますか?あなたは市場のコレクションに対してアクションを実行したい場合は
コールバックは問題ありません。ありがとう。私はプラットフォームコントローラの更新メソッドを使用して、各市場をループし、API呼び出しを含むコールバック関数をトリガーする属性を変更しました。 –