0

管理者がユーザーのリスト、編集、削除を行うためのフォームを作成しています。ユーザーを削除するためにさまざまなバリエーションを試しましたが、何も機能しません。routes.rb でdevise_for :usersandを使用する必要があるためかどうか疑問に思っています。resources :usersこれは、ユーザーにリンクされたアップロード/添付ファイルがあるためです。しかし、ここに私のリンクがあります

<%= link_to 'Delete',user, :method => 'delete',  :confirm => 'Are you sure?' %>

そして私のroutes.rb

# devise_for :users
devise_for :users do
  get "/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session
end
resources :users  do
  resources :attachments
end

私が受け取っているエラーはThe action 'destroy' could not be found for UsersController.

しかし、私のユーザーコントローラーには

def destroy
  @user = User.find(params[:id]).destroy
  redirect_to admin_index, :flash => { :success => 'User was successfully deleted.' }
end
4

1 に答える 1

1

リクエストに ajax を使用していない場合、問題は ajax を使用していることです。link_to

:method => 'delete' を送信するには、次のようにボタンを使用する必要があります。

<%= button_to 'Delete', user, :method => 'delete',  :confirm => 'Are you sure?' %>

フォームの送信では破壊的なアクションを実行する必要があるため:

http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist

于 2012-10-26T16:34:35.210 に答える