首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除链接不起作用但按钮起作用

问删除链接不起作用但按钮起作用
EN

Stack Overflow用户
提问于 2011-07-12 10:20:02
回答 3查看 2.6K关注 0票数 1

我有一个与此非常相似的问题:rails 3 - link_to to destroy not working

但是删除/销毁链接不起作用;我只是被重定向到该对象的显示页面。当我为delete创建一个按钮时,一切都正常工作。但我想知道为什么。有人知道吗?

我似乎与我正在使用/调用的一些.js文件有关。

代码语言:javascript
复制
<!-- 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控制器

代码语言:javascript
复制
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库:

代码语言:javascript
复制
<script type="text/javascript" src="/javascripts/dragdrop.js"></script>

但我还是不知道问题出在哪。

日志

代码语言:javascript
复制
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

代码语言:javascript
复制
<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之间是否存在已知的冲突?

EN

回答 3

Stack Overflow用户

发布于 2011-07-12 10:33:23

确保在应用程序布局中包含以下内容:

代码语言:javascript
复制
<%= javascript_include_tag(:defaults) %>
<%= csrf_meta_tag %>
票数 3
EN

Stack Overflow用户

发布于 2013-10-04 09:20:25

在我的例子中,添加

代码语言:javascript
复制
<%= javascript_include_tag(:defaults) %>

没有起作用。然而,显式定义java脚本文件做到了这一点。

代码语言:javascript
复制
<%= javascript_include_tag 'prototype' %>
<%= javascript_include_tag 'application' %>

还不确定原因:默认标签不起作用...

票数 1
EN

Stack Overflow用户

发布于 2014-03-28 22:07:04

如果您通过Gemfile加载了jquery-rails gem (这是默认的Rails配置),rails将自动加载jquery。然后通过以下方式加载:

代码语言:javascript
复制
<%= javascript_include_tag(:defaults) %>

看看app/assets/javascripts/application.js中告诉rails通过资产添加jquery的代码:

代码语言:javascript
复制
//= require jquery
//= require jquery_ujs

通过以下代码行尝试加载jquery的另一个副本:

代码语言:javascript
复制
<script type="text/javascript" src="/javascripts/jquery-1.5.1.min.js"></script>

您已经导致了jquery实例的冲突,其结果将是两者都不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6658851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档