Rails 3项目,安装了jquery-rails gem,但得到“Ajax没有定义”

时间:2011-08-09 21:03:20

标签: ruby-on-rails ruby-on-rails-3

我是一个铁杆新手试图按照如何执行一些Ajax调用的方法(在切换到jQuery之后),但我遇到了一个问题。

每当我触发ajax代码(new Ajax.Request())时,我都会在firebug中得到“Ajax is not defined”。有比我更多技能的人都知道这里有什么?

更新

对于遇到此问题的其他人,生成上述代码的代码是对remote_function()的调用


我做了什么设置:

  1. 在我的gemfile中添加了“gem'jquery-rails','> = 1.0.12'”,然后运行bundle install
  2. 运行rails生成jquery:install
  3. 我的public / javascripts /文件夹因此具有以下文件:

    • 的application.js
    • jquery.min.js
    • 的jquery-ui.min.js
    • 的jquery.js
    • 的jquery-ui.js
    • jquery_ujs.js

    我的HTML中包含的脚本如下所示:

    <script src="/javascripts/jquery.js?1312911234" type="text/javascript"></script>
    <script src="/javascripts/jquery-ui.js?1312911234" type="text/javascript"></script>
    <script src="/javascripts/jquery_ujs.js?1312911234" type="text/javascript"></script>
    <script src="/javascripts/application.js?1312911234" type="text/javascript"></script>
    

1 个答案:

答案 0 :(得分:5)

我猜你的教程使用Prototype作为Ajax.Request用于Prototype,你应该使用$.ajax和jQuery。切换到基于jQuery的教程也可能是一个好主意。

您说您正在使用remote_function,但那是Prototype-specific

  

<强>用法
  为了能够使用这些帮助程序,您必须首先在页面中包含Prototype JavaScript框架。

Prototype曾经是Rails的默认JavaScript库,所以我怀疑PrototypeHelper是一个剩余的。您可能希望查看link_to上的:remote选项以及新代码的相似内容。