10

这是一个非常奇怪的问题。我有一个 Rails 应用程序,我在其中使用 UJS 将页面上的一个部分替换为另一个。最近,它停止工作,所以我开始在整个过程中记录,看看它在哪里坏了。这是我发现的:

  • 单击链接后,rails 控制台告诉我所有内容都已渲染,包括所有部分,并返回 200 OK。
  • 放入控制器动作返回正常
  • 放入 respond.do 块返回正常
  • .js.erb 文件中的放入返回正常

这意味着它可以一直运行 .js.erb 文件并无错误地评估 ruby​​。但奇怪的是 - 没有一个 javascript 正在执行。当我在 .js.erb 文件中运行 alert('hello?') 时,它没有执行。

有没有人遇到过这个问题?它会运行 erb 评估但不运行 js,这似乎非常奇怪。并且 js 控制台中也没有出现错误。

作为记录,我已经清除了缓存,重新启动了浏览器,重新启动了 rails 应用程序,没有任何改变。

示例代码:

# view
link_to 'example', some_path, :remote => true

# controller
respond_to do |format|
  format.js
end

# .js.erb file
alert('this never shows up');
<% puts 'this shows up in the rails console' %>

非常感谢任何可以对这个奇怪问题有所了解的人!

4

1 回答 1

10

js有没有可能出错?ajax 请求在 js 控制台中没有正常显示。 http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

(类似的环境在我的机器上运行良好)

于 2011-11-21T21:16:03.200 回答