2011-11-19 102 views
9

这是一个很奇怪的问题。我有一个rails应用程序,我在其中使用UJS替换页面上的一个部分。最近,它停止了工作,所以我开始记录整个过程,看看它打破了什么地方。这里是我的发现:该链接被点击rails ujs - javascript没有执行

  • 后,铁轨控制台告诉我,一切都渲染,包括所有的泛音,并返回200 OK。
  • 一个提出在控制器动作返回精细
  • 一个提出在respond.do块11返回精细
  • 一个提出在.js.erb文件返回精细

这意味着它让所有的方式来运行.js.erb文件和评估没有错误的红宝石。 但这里有什么奇怪的 - 没有一个JavaScript正在执行。当我在.js.erb文件中运行警报('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' %> 

感谢洙多的人谁可以摆脱一点光对这个奇怪的问题!

+0

凡是在JS控制台? –

+0

“js控制台中也没有出现错误。” –

+1

对不起;我会自动忽略以连词开始的句子。 –

回答

9

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

(A类似的环境中运行我的机器罚款)

+0

哈哈你的权利,它出现在铬检查器的网络选项卡(在XHR下,如我所说)。 JavaScript控制台保持空白。尽管这是一个很棒的帖子,我会检查一下,看看是否能解决它!谢谢〜 –

+0

在这篇文章中它说要检查它是否正在处理“作为JS” - 对我来说,它说它正在作为JS处理。所以我点击了你提供的替代链接,它给了我一个404错误。 –

+0

我也意识到:(但文章的底部提供了一种方法来测试呈现的错误在萤火虫js。这可能会提供一些洞察到发生了什么 –