rails删除之前确认

时间:2013-10-25 11:02:58

标签: ruby-on-rails ruby-on-rails-3.2 ruby-on-rails-4

这是我的rails link_to

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),data: {confirm: "Are you sure?"} %>

我尝试了上面的方法但它没有任何警告信息就直接删除了。我做错了什么。任何人都可以纠正它。

7 个答案:

答案 0 :(得分:52)

试试这个

<%= link_to 'Delete',url_for(action: :delete,id: @user.id),method: :delete, data: {confirm: "Are you sure?"} %>

答案 1 :(得分:11)

回答rails 4.1.8(问题不包括版本)

和标准资源(也未指定)

  1. //= jquery_ujs必须包含在application.js中(可能缺少)
  2. 网址为user_path(@user)
  3. 指定:method => :delete(缺少)
  4. 确认:data内的消息(很好)
  5. 控制器中的
  6. 销毁方法(不是删除)
  7.   

    = link_to t(:delete),user_path(@user),:method =&gt; :delete,:class =&gt; “btn btn-danger”,:data =&gt; {:confirm =&gt; t(:are_you_sure)}

    问题中的url似乎创建了一个GET,而不是DELETE方法。这可能在以下情况下有效:指定了方法。 imho很不幸的是,没有单独的命名url助手。

答案 2 :(得分:5)

设置销毁动作的确认弹出框:

        <%= link_to 'Show', article_path(article),{:class=>'btn btn-success show_article' }%>
        <%= link_to 'Edit', edit_article_path(article),{:class=>'btn btn-warning edit'} %>
        <%= link_to 'Destroy', '#', "data-toggle"=>"modal", "data-target" => "#delete-#{article.id}",:class=>'btn btn-danger' %>
        <div class="modal fade" id="delete-<%= article.id %>" role="dialog">
          <div class="modal-dialog">
            <div class="modal-content">
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">Confirmation Box</button>
              </div>
              <div class="modal-body">
                <p>Are you sure to delete this article</p>
              </div>
              <div class="modal-footer">
                <div class="modal-footer">
                  <%= link_to 'Delete', article_path(article), method: :delete, :class => 'btn btn-danger' %>
                    <a href="#" data-dismiss="modal" class="btn btn-warning">Cancel</a>
                </div>
              </div>
            </div>
          </div>
        </div>

答案 3 :(得分:1)

  1. 我认为你应该使用:方法选项

    <%= link_to 'Delete',url_for(action: :delete,id: @user.id), method: :delete, confirm: "Are you sure?" %>

  2. 使用按钮(和表单)进行此类操作可能更好

答案 4 :(得分:1)

link_to('Delete', {controller: :controller_name, id: id, action: :action_name}, confirm: "Are you sure you want to delete this?", method: :delete)

答案 5 :(得分:0)

检查以下链接:

<%= link_to 'Delete',url_for(action: :delete,id: @user.id), confirm: "Are you sure?" %>

答案 6 :(得分:0)

确保包含jQuery库和Rails的jQuery驱动程序。根据我所知,jquery-rails gem将在Rails的更高版本中处理这两个问题。

此外,为了更好地兼容未来版本的jQuery驱动程序,请将:confirm选项移到:data之外,让jquery-rails gem决定如何处理它。