Railsは初めてなので、これが正しい方法かどうかはわかりません。いくつかのチェックボックスのAJAXリンクを含むビューがあります。
<% @row_headers.each do |row_header| %>
<% row_header_ = row_header.gsub(" ", "-") %>
<%= check_box_tag row_header_, row_header, params.key?(row_header_),
:data => { :remote => true,
:url => url_for(
controller: :web_pages,
action: :administratorswgraph} %> <%= row_header %>
<% end %>
<% end %>
これは:administratorswgraphビューから呼び出されています。後で私が持っているファイルで
<% if not @swChart.nil? %>
<div id="swChart"></div>
<%= render_chart(@swChart, 'swChart') %>
<% end %>
render_chartはGoogleVisualrライブラリからのものです。私が持っているコントローラーに
def administratorswgraph
headers = []
@row_headers.each_with_index do |row_header, i|
if params.key? row_header.gsub(" ", "-")
headers.push i
end
end
if headers.empty?
@swChart = nil
else
@swChart = MakeSiteChart(headers, 580, 480)
end
end
MakeSiteChart関数は、チェックボックスに基づいてGoogleVisualrオブジェクトを返します。私が欲しいのは、チェックボックスの状態が変更されるたびに、新しいチャートが作成されて表示されることです。デバッガーから、チェックボックスの状態が変更されるたびに<%= render_chart(@swChart、'swChart')%>がビューで呼び出されていることがわかりますが、ブラウザーの表示は更新されません。グラフを表示するためにブラウザに表示するにはどうすればよいですか?
編集 私は次の方法を使用してajaxイベントの制御を取得することができました
$('#<%= @row_headers[0].gsub(" ", "-") %>').on('ajax:success', function(event, xhr, settings) {
alert("HERE")
});
テストの目的で、最初のチェックボックスを接続するだけです。ただし、引数を解析する方法、グラフを取得する方法、およびそれをDOMに挿入する方法がわかりません。