我有一个奇怪的问题。真的太奇怪了,打不出来,但就这样。基本上我有一个控制器拒绝使用javascript“respond_to”,除非我在“respond_to”块之前将我的“chart.generate_xml”分配给一个变量,如下所示:
@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”感到困惑。想法?
最好的。