我有一个与此非常相似的问题:rails 3 - link_to to destroy not working
但是删除/销毁链接不起作用;我只是被重定向到该对象的显示页面。当我为delete创建一个按钮时,一切都正常工作。但我想知道为什么。有人知道吗?
我似乎与我正在使用/调用的一些.js文件有关。
<!-- This link doesn't work -->
<%= link_to('Delete', post, :confirm => 'Are you sure?', :method => :delete) %>-->
<!-- This button does work -->
<%= button_to "delete", post, :method=>:delete, :class=>:destroy, :confirm => 'Are you sure?' %>Post控制器
def destroy
@post = Post.find(params[:id])
@post.destroy
respond_to do |format|
format.html { redirect_to(posts_url) }
format.xml { head :ok }
end结束
更新在做了一些进一步的研究之后,似乎每个其他有类似问题的人都包含了以下jquery库:
<script type="text/javascript" src="/javascripts/dragdrop.js"></script>但我还是不知道问题出在哪。
日志
Started GET "/posts/7" for 127.0.0.1 at Tue Jul 12 08:34:06 -0400 2011
Processing by PostsController#show as HTML
Parameters: {"id"=>"7"}
Post Load (0.2ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = 7 LIMIT 1
SQL (0.2ms) SELECT COUNT(*) FROM "comments" WHERE ("comments".post_id = 7)
Rendered posts/show.html.erb within layouts/application (116.5ms)生成的HTML
<a href="/posts/17" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Delete</a>更新:我发现移除<script type="text/javascript" src="/javascripts/jquery-1.5.1.min.js"></script>可以解决我的问题。但我不明白为什么。jquery1.5.1和rails 3.0.7之间是否存在已知的冲突?
发布于 2011-07-12 10:33:23
确保在应用程序布局中包含以下内容:
<%= javascript_include_tag(:defaults) %>
<%= csrf_meta_tag %>发布于 2013-10-04 09:20:25
在我的例子中,添加
<%= javascript_include_tag(:defaults) %>没有起作用。然而,显式定义java脚本文件做到了这一点。
<%= javascript_include_tag 'prototype' %>
<%= javascript_include_tag 'application' %>还不确定原因:默认标签不起作用...
发布于 2014-03-28 22:07:04
如果您通过Gemfile加载了jquery-rails gem (这是默认的Rails配置),rails将自动加载jquery。然后通过以下方式加载:
<%= javascript_include_tag(:defaults) %>看看app/assets/javascripts/application.js中告诉rails通过资产添加jquery的代码:
//= require jquery
//= require jquery_ujs通过以下代码行尝试加载jquery的另一个副本:
<script type="text/javascript" src="/javascripts/jquery-1.5.1.min.js"></script>您已经导致了jquery实例的冲突,其结果将是两者都不起作用。
https://stackoverflow.com/questions/6658851
复制相似问题