安装JQuery时,为什么我的“删除”链接会中断?
我有一个可以创建和删除产品的Rails 3应用程序。 索引页面列出了所有产品。 列表中每个产品旁边都有一个删除链接:
:delete, :title => "Delete" %>
这在HTML中看起来像这样:
Delete
这一直很好。
我已经达到了我想在我的应用程序中安装JQuery的程度。 我按照几个网页上提供的步骤(例如, 这个或这个 )。
安装JQuery后,上面的“删除”链接中断。 Rails尝试处理show
动作,而不是处理ProductsController
的destroy
动作!
我的猜测是它与Web浏览器本身不能发送DELETE
请求这一事实有关,因此Rails使用JavaScript“伪造”这样的请求,这就是为什么我在尝试安装JQuery 之前有以下行:
编辑:在JQuery安装过程中的某些东西必须使得用于“伪造” DELETE
请求的Javascript不再起作用,从而导致调用show
动作。 但究竟发生了什么我不知道……
有人有主意吗? 谢谢。
仔细检查您的JavaScript文件的包含顺序。 具体来说,必须在jQuery Rails驱动程序之前加载jQuery(请参阅以下行: http://github.com/BinaryMuse/rails-book/blob/master/app/views/layouts/application.html.haml#L6-L7 ):
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %> <%= javascript_include_tag "rails" %>
(这假设您使用来自http://github.com/rails/jquery-ujs/blob/master/src/rails.js的jQuery驱动程序替换了rails.js
的内容)。
另外,尝试包含更新版本的jquery,例如1.4.4:
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js","rails" %>