为什么我得到两个对话框确认(rails)

时间:2013-02-25 20:24:01

标签: ruby-on-rails

当我点击链接删除评论时,我收到两个对话框确认。当我删除确认书时,我没有得到任何确认。

查看/评论/ _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 %>

1 个答案:

答案 0 :(得分:2)

当单击处理程序绑定到同一元素两次时,通常会发生这种情况。检查您的javascript文件是否包含两次。

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

如果该断点被击中两次,那么您可能已经将该文件包含两次。如果它只被命中一次,那么其他一些代码就是在同一个元素上设置一个click处理程序。

警告:就像244an在他对你的帖子的评论中说的那样,你不必将confirm: "You sure?置于数据哈希中。你可以这样做:<%= link_to 'erase', delete_path, confirm: 'You sure?' %>。见UrlHelper#link_to。但是,似乎没有像你那样伤害任何事情。