3

bookが所有するネストされたオブジェクトを削除したいuser。ページには、それに関連user#showするすべてが表示されます。各本のほかに、それへのリンクがあります。これが私のコードです:booksuserdelete

routes.rb:

 resources :users do
   resources :books, :only => [:new, :create, :destroy]
 end

book_controller.rb:

def destroy
  @user= User.find(params[:user])
  @book = Book.find(params[:book])
  @book.destroy
  redirect_to current_user
end

そしてuser#showページで:

<%= link_to "Delete", user_book_path(current_user, book), :method => :delete %>

これが間違っていることはわかっていますが、欲しい本を削除するにはどうすればよいですか?

4

1 に答える 1

3

削除するときは、それがネストされたリソースであるという事実を忘れることができます。どの本について話しているかはわかっているので、直接削除することができます。

ルート:

resources :users do
  resources :books, :only => [:new, :create]
end

resources :books, :only => :destroy

ブックコントローラー:

def destroy
  @book = Book.find(params[:id])
  @book.destroy
  redirect_to current_user
end

意見:

<%= link_to "Delete", book_path(book), :method => :delete %>
于 2011-05-30T15:14:11.283 に答える