Rails 请教 respond_to 方法的 format.js{}的问题

rails_song · 2012年03月28日 · 最后由 rails_song 回复于 2012年04月22日 · 10030 次阅读

不知调用 format.js 后 rails 是怎样发现相应的 js.rjs 文件的? 最近也在随书练习 ajax 这块,发现始终跑不到 rjs 的文件。成功的案例里会最后 Rendered 相应的 rjs 文件,也查到坛子里有相似的问题(但我这边不是版本的问题,已经有过成功的案例),log 里 Processing by SeatsController#flight_seats as JS,但在 controller 里的 '''ruby respond_to do |format| puts "Works here." format.js {} end ''' 已验证打印出“Works here.”,就是最后的 rjs 文件跑不到。

已解决,是由于我的 contrller 内在 respond 之前有个 render 方法

你上具体怎么解决的?我也碰到这个问题。

rjs 现在已经被从 rails3.0 以后的版本中移除了,当前版本 rails 的 ajax 使用的是 ujs 方式 ,具体请参考

http://guides.rubyonrails.org/ajax_on_rails.html

https://github.com/rails/jquery-ujs/wiki

用 .js.erb 或者 .js.coffee

搜了一下 .js.coffee 里面也能用 erb 语法,不过我没试过。

#2 楼 @rubyqian 当时的那个问题是在 respond_to 之前有个 render 调用。总结了下,还有个情况是在 form 中的 ajax 需要注意下,容易受 form 的 post 提交影响。 #3 楼 @aNdReW_Qx #4 楼 @Rei 谢谢,正准备升级版本。之前是基于敏捷第四版开始的,呵呵

需要 登录 后方可回复, 如果你还没有账号请 注册新账号