为什么没有调用正确的“respond_to”格式?

时间:2010-04-28 00:14:10

标签: javascript ruby-on-rails controller format respond-to

我有一个奇怪的问题。真的太奇怪了,输入,但这里。基本上我有一个控制器拒绝使用javascript“respond_to”,除非我将“chart.generate_xml”分配给“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”并不总是被调用。想法?

最佳。

1 个答案:

答案 0 :(得分:0)

这可能是你的config / routes.rb文件中的一个问题,因为这会弄乱格式。

你能发布这个文件和curl / wget的结果标题吗?