Javascript 包括ActionController::Live中断现有的AJAX调用

Javascript 包括ActionController::Live中断现有的AJAX调用,javascript,ruby-on-rails,ajax,html,Javascript,Ruby On Rails,Ajax,Html,我有一个具有多个操作/视图的控制器,其中只有一个将利用ActionController::Live模块。但是,一旦包含,AJAX操作(在不相关的页面上)就不再在客户端上呈现 以下代码可以正常工作: 我的控制器。rb: class MyController < ApplicationController def index // renders vanilla HTML/JS from index.html.erb end def update_in

我有一个具有多个操作/视图的控制器,其中只有一个将利用
ActionController::Live
模块。但是,一旦包含,AJAX操作(在不相关的页面上)就不再在客户端上呈现

以下代码可以正常工作:

我的控制器。rb:

class MyController < ApplicationController
    def index
        // renders vanilla HTML/JS from index.html.erb
    end

    def update_index
        // renders JavaScript from index.js.erb
    end
end
$('#content').html('You clicked the button.');
问题: 只要我将
include ActionController::Live
添加到控制器中,甚至在为服务器端事件创建任何JavaScript或Rails句柄(非常有效)之前,我现有的代码就会停止工作。发生以下情况:

  • 服务器看到传入的AJAX请求
  • 调用所有适当的控制器函数
  • JavaScript不会在客户端执行

如果您的控制器中包含了
ActionController::Live
,则它似乎会更改返回到客户端时的默认标题情况。在我的非SSE操作中添加以下行似乎可以解决问题:

response.headers["Content-Type"] = 'text/javascript'
但我很想知道是否有更好的解决方案,或者我是否应该在所有适当的行动上这样做

response.headers["Content-Type"] = 'text/javascript'