少し奇妙な問題があります。入力するには本当に奇妙すぎますが、ここに行きます。基本的に、次のように「respond_to」ブロックの前の変数に「chart.generate_xml」を割り当てない限り、javascriptを使用して「respond_to」を拒否するコントローラーがあります。
@xml = @chart.generate_xml(@begin_date,@end_date,1.hour)
respond_to do |format|
format.html
format.js{
render :update do |page|
page.insert_html :bottom, "chart-div", @xml
#page.insert_html :bottom, "chart-div", @chart.generate_xml(@begin_date,@end_date,1.hour)
end
}
上部の「@xml=…」部分を削除して下部の「page.insert」に移動すると、「format.js」セクションが呼び出されません。また、「request.format =:js」を使用してフォーマットを強制しようとすると、JavaScriptがテキストとして返されます。ここでは、そのメソッド呼び出しで特別なことは何もしていないので、なぜ別の応答を選択するのかわかりません。
FWIW、このコントローラーアクションをトリガーするメソッドはJSを使用してトリガーするため、「format.js」が常に呼び出されるとは限らない理由について混乱しています。考え?
一番。