【问题标题】:Problem with AJAX and UJS with jQuery in Rails 3Rails 3 中带有 jQ​​uery 的 AJAX 和 UJS 问题
【发布时间】:2011-05-13 14:27:49
【问题描述】:

我正在尝试按照以下教程进行操作:

http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/

以及在

的railscast

http://railscasts.com/episodes/205-unobtrusive-javascript

..在这两种情况下我都遇到了同样的问题。控制器没有呈现 .js 模板(它正在回退到 .html),因为请求标头没有像应有的那样请求 javascript。

我正在使用来自 github 和 jquery 1.4.4 的 jquery ujs

“data-remote=true”属性正按应有的方式提供给表单。但由于某种原因,这并没有修改请求。

如果我切换到prototype.js,它可以工作(使用默认的prototype.js 和rails 中的rails.js)。

我正在使用 rails 3.0.0

任何建议表示赞赏。

【问题讨论】:

  • 这种情况是在所有浏览器中发生还是仅在某个浏览器中发生?
  • 请您发布一些示例代码,例如您用于呈现模板的控制器操作
  • 您能否在浏览器内的 javascript 控制台中显示使用错误(在 chrome 或 firefox 中的 firebug 中)。
  • Monocle:它的行为正如我在我的问题中指出的那样,在 FF 与 Safari 中略有不同,只是在请求接受不一样的意义上。但无论哪种方式,它都不是文本/javascript,就像它应该是的那样。
  • Scaney..我的控制器代码与我链接到的屏幕截图和文章中的代码一样。一行:format.js。但这并不重要,因为发送的请求接受是错误的。如果那不是 text/javascript.. 控制器不会关注 format.js 并且不会使用 .js 模板。

标签: jquery ruby-on-rails ajax unobtrusive-javascript


【解决方案1】:

浪费了一天之后...:-(

我发现当您生成一个新的 Rails 3 应用程序时,会在 public/javascripts 文件夹中创建一个名为 rails.js 的文件以及您在 Rails 2 项目中看到的所有其他 .js 文件。

rails.js 包含所有不显眼的处理程序。默认情况下,Rails 假定您使用的是 Prototype.js。

对于 Jquery,将文件 rails.js 替换为 https://github.com/rails/jquery-ujs

以下链接帮助了我: http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

【讨论】:

  • Rakesh,我在我的问题中说我已经用 jquery-ujs 替换了 rails.js)。
【解决方案2】:

“当前”最好的处理方法是将这只小狗添加到您的 gemfile 中

https://github.com/indirect/jquery-rails

运行

bundle install

然后

rails generate jquery:install #--ui to enable jQuery UI --version to install specific version of JQuery (default is 1.4.2)

那么一切就绪 - 当您运行生成器时,它会覆盖默认的 rails.js。

【讨论】:

    【解决方案3】:

    我有类似的问题。然后,我决定,因为问题出在 Ajax 上,我应该从非常简单的东西开始。所以,我从This开始

    【讨论】:

      猜你喜欢
      • 2011-04-10
      • 2011-09-13
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多