私はまだ RoR に慣れていないので、button_to delete ボタンでオブジェクトを削除しようとしています。私が書いたコードでは、destroy メソッドの /needs/:id にアクセスしようとすると、/needs/4 ではなく /needs.4 に移動します。「ニーズ」は、needs-controller と needs new.html.erb ページを介して作成され、ユーザーの表示ページに表示されます。そこから、ユーザーは自分のニーズを削除できるはずです。 これは私が得るエラーです:
ActiveRecord::RecordNotFound in NeedsController#destroy
Couldn't find Need with id=@userneed
Rails.root: /Users/mcn/Dropbox/Code/GA/Projects/GA_projects/p4_final/flatcircle
Application Trace | Framework Trace | Full Trace
app/controllers/needs_controller.rb:20:in `destroy'
Request
Parameters:
{"_method"=>"delete",
"authenticity_token"=>"Fv6EcMNJQEjtw1naQVMw77lkCGjTJR7ui2FD53aoZfc=",
"id"=>"@userneed"}
そして、これは私のコードです:
Needs_controller:
def destroy
Need.find(params[:id]).destroy
redirect_to :controller => :users, :action => :show, :id => current_user.id, :flash => { :success => "Your search post was deleted." }
end
ユーザーの表示ページ button_to 行:
<%= button_to "delete", '/needs/@userneed', method: :delete, data: { confirm: "You sure?"} %>
そして同じページに:
@userneed = @current_user.needs.last
Routes.rb
delete "/needs/:id", to: "needs#destroy"
get "/needs/:id", to: "needs#show"
非常に困っているので、解決方法をご存知の方教えてください!