グラフをページに表示するために必要な JSON を取得する get リクエストがあります。私は JQuery でそれを行いますが、私が使用している API のため、それは不可能です。つまり、Rails で行う必要があります。
私はこれを疑問に思っています: ページのアクションで別のスレッドで get リクエストを実行すると、ページの読み込み後に変数を javascript に渡すことができますか? スレッドがレールでどのように機能するかわかりません。
この作品のようなものでしょうか:
Thread.new do
url = URI.parse("http://api.steampowered.com/IDOTAMatch_570/GetMatchHistory/v001/?key=#{ENV['STEAM_WEB_API_KEY']}&account_id=#{id}&matches_requested=25&game_mode=1234516&format=json")
res = Net::HTTP::get(url)
matchlist = JSON.parse(res)
matches = []
if matchlist['result'] == 1 then
matchlist['result']['matches'].each do |match|
matches.push(GetMatchWin(match['match_id']))
end
end
def GetMatchWin(match_id, id)
match_data = matchlist["result"]["matches"].select {|m| m["match_id"] == match_id}
end
end
end
上記のコードがヘルパー ファイルにある場合、コントローラーのアクションで次のように呼び出されます。
def index
if not session.key?(:current_user) then
redirect_to root_path
else
gon.winlossdata = GetMatchHistoryRawData(session[:current_user][:uid32])
end
end
「gon」の部分は、javascript にデータを渡すための単なる gem です。