【问题标题】:Rails - Nested Objects DeletionRails - 嵌套对象删除
【发布时间】:2011-05-30 14:54:19
【问题描述】:

我想删除由user 拥有的嵌套对象book。在user#show 页面中会出现与user 相关的所有books。除了每本书之外,还有一个指向delete它的链接。这是我的代码:

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 %>

我知道这是错误的,但我该怎么做才能删除想要的书?

【问题讨论】:

  • 您向我们展示的代码没有多大意义。 destroy 方法在哪个控制器中?图书和用户有什么关系?
  • 要编辑问题。
  • 谢谢。我现在明白你的问题了。

标签: ruby-on-rails ruby-on-rails-3 actioncontroller nested-resources


【解决方案1】:

当您删除时,您可能会忘记它是一个嵌套资源这一事实。你知道你在说哪本书,所以你可以直接删除它。

路线:

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 %>

【讨论】:

  • 谢谢!像魅力一样工作:)
  • 感谢您的明确答复!我已经搜索此信息 45 分钟了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-07
  • 2021-12-28
相关资源
最近更新 更多