ページに複数の投票の質問があるという問題があります。簡単に言えば、質問に答えた後、コントローラに対して AJAX 呼び出しが行われ、Chartkick gem と Google jaspi ライブラリを使用してチャートを表示する js.erb がレンダリングされます。これは、単一のチャートに対してのみ有効です。ただし、複数の棒グラフ (回答済みの質問ごとに 1 つ) があると問題になります。最近回答された質問が間違った div の質問のグラフを上書きし、最後に回答された質問に読み込みが表示されるだけです。
これが基本的なコードです。
ビューで:
<div id="results-<%= i %>" style="display: none; margin-top: -20px;"></div>
質問に回答すると、上記の div がグラフとともに表示されます。
コントローラーで:
data = [
{
data: results_array
}
]
respond_to do |format|
@div_id = div_id
@poll_data = data
format.js
end
そして、上記のブロックでレンダリングされる js.erb ファイルで:
$("#results-<%= @div_id%>").html('<%= escape_javascript(bar_chart(@poll_data, library: {legend: "none"})) %>').show();
どんな助けでも大歓迎です。質問ごとに正しいグラフを表示し、確実にロードする必要があります。欠落しているチャートまたはオブジェクトのインスタンスを区別する方法はありますか? ありがとう。