我想删除user
拥有的嵌套对象book
。在user#show
页面中,会显示与该user
相关的所有books
。除了每本书,还有一个链接到delete
it。这是我的代码:
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 %>
我知道这是错误的,但我如何才能删除想要的书?
当您删除时,您可能会忘记它是一个嵌套资源的事实。你知道你在说哪本书,所以你可以直接删除它。
路线:
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 %>