2013-02-25 15 views
1

当我单击链接以删除评论时,我收到两个对话框确认。当我删除确认我没有得到任何。为什么我得到两个对话框确认(导轨)

查看/评论/ _comment:

<span class="comment_info"> 
    <aside class="span2"> 
    <%= link_to gravatar_for((comment.user), size: 35), comment.user %> 
    <%= link_to comment.user.name, comment.user, id: "feedusername" %> 
    </aside> 
<span id="comment_contentz"> <%= comment.content %> 
<span id="timestamp_and_delete"> 
    Said <%= time_ago_in_words(comment.created_at) %> ago. 
    <% if current_user?(comment.user) || current_user.id == (comment.micropost.user_id) %> 
    <%= link_to "erase", comment, method: :delete, id:"", 
      data: { confirm: "You sure?" }, 
      title: comment.content %> 
    <% end %> 
    </span> 
    </span> 
</span> 

我有同样的问题,我的帖子

微柱/ _micropost:

<span class="timestamp">Posted 
    <%=time_ago_in_words(micropost.created_at) %> ago.</span> 
    <%= render 'shared/delete_micropost', object: micropost %> </span> 
    <br/> 
    <%= micropost.content %> 
    </span> 
<%= render micropost.comments %> 

共享/ delete_micropost:

<% if current_user?(object.user) %> 
    <%= link_to "delete", object, method: :delete,  id:"micropost_delete", 
      data: { confirm: "Remove Post?" }, 
      title: object.content %> 
<% end %> 
+0

您是否测试过取下'dependent::destroy'来查看会发生什么? – 244an 2013-02-25 20:38:00

+0

是同样的问题。它必须与我最近添加的东西有关,因为我不记得之前遇到这个问题,但问题是我不知道它何时开始确切 – Jaqx 2013-02-25 20:43:03

+0

有没有办法测试什么是第二次确认? – Jaqx 2013-02-25 20:43:28

回答

2

这个u当点击处理程序绑定两次到相同的元素时,会发生这种情况。检查你的JavaScript文件不包含两次。

如果您使用Rails 3.2.8,请查找application.jsjquery_ujs的多个包含。或者,您可以尝试使用Javascript控制台在点击删除按钮时调用的点击处理程序上设置断点。你必须在上述文件的某个地方挖掘该方法。

如果该断点被击两次,那么你可能已经包含了该文件两次。如果它只被命中一次,那么其他一些代码将在同一个元素上设置点击处理程序。注意:就像244an在他对你的帖子的评论中说的那样,你不必将confirm: "You sure?放在数据哈希中。你可以这样做:<%= link_to 'erase', delete_path, confirm: 'You sure?' %>。见UrlHelper#link_to。但是,似乎没有伤害任何东西,但要按照你的方式去做。

+0

我的javascript绝对是通过应用程序发射两次,但我不知道问题出在哪里。在我的服务器上,当我点击我看到的东西时:MicropostsController处理#通过MicropostsController创建HTML处理#作为JS创建 – Jaqx 2013-02-25 22:39:25

+0

在两个对话框中点击“yes”后,您是否在日志中看到日志,当你用有问题的链接加载页面? 顺便说一句,你可以使用[git bisect](http://git-scm.com/book/en/Git-Tools-Debugging-with-Git#Binary-Search)来帮助你找到违规提交。然后,它可以像查看差异一样简单,以查看代码包含两次或分配处理程序分配两次的位置。 – 2013-02-26 01:45:53

+1

我只是想通了。我必须删除公共/资产文件夹,重新启动服务器并清除浏览器缓存。 pub/asset文件夹中有重复的application.js。 – Jaqx 2013-02-26 01:48:24