Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由于浏览器发送的格式不正确,Rails中出现MissingTemplate错误_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

Javascript 由于浏览器发送的格式不正确,Rails中出现MissingTemplate错误

Javascript 由于浏览器发送的格式不正确,Rails中出现MissingTemplate错误,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我遇到了这样一个问题:偶尔,浏览器在发出请求时未能发送正确的格式列表,因此引发MissingTemplate错误。我有一些只对JS:做出响应的操作,例如: blah_controller.rb: def BlahController < ActionController::Base respond_to :js, :only => :my_action def my_action # stuff end end 绝大多数情况下,jQuery发出ajax请求,并

我遇到了这样一个问题:偶尔,浏览器在发出请求时未能发送正确的格式列表,因此引发MissingTemplate错误。我有一些只对JS:做出响应的操作,例如:

blah_controller.rb:

def BlahController < ActionController::Base
  respond_to :js, :only => :my_action

  def my_action
    # stuff
  end
end
绝大多数情况下,jQuery发出ajax请求,并执行生成的JavaScript—调用doSomething。但偶尔,浏览器会发送不包含JS的格式列表,因此会引发ActionView::MissingTemplate错误:

ActionView::MissingTemplate: Missing template blah/my_action with {:formats=>[:html], :handlers=>[:rjs, :rhtml, :erb, :rxml, :builder], :locale=>[:en, :en]} in view paths ...

这种情况发生在不同的浏览器上,因此我无法将其归因于某个模糊的浏览器,但我无法复制它。

如果您无法复制该问题,并且它似乎只发生在您的生产环境中,则可能有一些机器人错误地请求您的页面。您在浏览器中看到的差异可能来自欺骗用户代理

我会根据蜜罐项目之类的东西检查失败请求的IP


也许您需要发布发送AJAX请求的源代码。但我还没能复制它。你是什么意思?一个常规的jQuery请求使请求$.get'…'。我关于复制它的意思是,当我以交互方式测试它时,我不能让它发生;我只在生产错误日志中看到它。
ActionView::MissingTemplate: Missing template blah/my_action with {:formats=>[:html], :handlers=>[:rjs, :rhtml, :erb, :rxml, :builder], :locale=>[:en, :en]} in view paths ...