San*_*jay 3 jquery ruby-on-rails-3
我有一个Rails 3应用程序,可以创建和删除产品.索引页面列出了所有产品.列表中每个产品旁边都有一个删除链接:
<%= link_to "Delete", product, :method => :delete, :title => "Delete" %>
Run Code Online (Sandbox Code Playgroud)
这在HTML中看起来像这样:
<a href="/products/104" data-method="delete" rel="nofollow" title="Delete">Delete</a>
Run Code Online (Sandbox Code Playgroud)
这一直很好.
我已经达到了我想在我的应用程序中安装JQuery的程度.我按照几个网页上提供的步骤(例如,这个或这个).
安装JQuery后,上面的"删除"链接中断.Rails尝试处理destroy动作,而不是处理动作!ProductsControllershow
我的猜测是它与Web浏览器本身不能发送DELETE请求这一事实有关,因此Rails使用JavaScript"伪造"这样的请求,这就是为什么我在尝试安装JQuery 之前有以下行:
<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)
编辑:在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" %>
Run Code Online (Sandbox Code Playgroud)
(这假设您rails.js使用jQuery驱动程序替换了http://github.com/rails/jquery-ujs/blob/master/src/rails.js中的内容).
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |