web-dev-qa-db-ja.com

rails削除前に確認

ここに私のRails link_to

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

上記の方法を試しましたが、警告メッセージなしで直接削除しています。何が間違っていた。誰でも修正できます。

36
overflow

これを試して

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

Rails 4.1.8(質問にはバージョンは含まれません)の回答

および標準リソース(指定されていません)

  1. _//= jquery_ujs_はapplication.jsに含める必要があります(おそらくない)
  2. urlはuser_path(@user)です
  3. _:method => :delete_を指定(欠落)
  4. _:data_内のメッセージを確認(良かった)
  5. 破棄メソッドコントローラー内(削除ではない)

= link_to t(:delete)、user_path(@user)、:method =>:delete、:class => "btn btn-danger"、:data => {:confirm => t(:are_you_sure)}

質問のURLは、DELETEメソッドではなくGETを作成しているようです。 :methodが指定されている場合、これは機能する可能性があります。残念ながら、このために別の名前のURLヘルパーが存在しないのは残念です。

11
Torsten

破棄アクションのRails確認ポップアップボックス:

    <%= 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>
</td>
2
sivamani
  1. :methodオプションを使用する必要があると思います

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

  2. この種のアクションにはボタン(およびフォーム)を使用することをお勧めします

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

Railsを含む)のjQueryライブラリとjQueryドライバーの両方があることを確認してください。jquery-Rails gemは、Railsの今後のバージョンでこれらの両方を処理します。 。

また、jQueryドライバーの将来のバージョンとの互換性を高めるために、:confirmオプションを:dataの外に移動し、jquery-Rails gemでそれをどう処理するかを決定してください。

0
kristinalim

次のリンクを確認してください。

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