Ruby on rails 删除rails 3.1中嵌套资源中的路由

Ruby on rails 删除rails 3.1中嵌套资源中的路由,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我有一个嵌套的资源: resources :bills do resources :debts end 当我在债务视图的索引html中创建一个删除链接时,如下所示: <td> <%= link_to "Delete", [@bill, @debt], confirm: "Are you sure?", method: :delete %> </td> 我的模特们: 票据模式: class Bill < ActiveRecord::Base

我有一个嵌套的资源:

resources :bills do
  resources :debts
end
当我在债务视图的索引html中创建一个删除链接时,如下所示:

<td>
   <%= link_to "Delete", [@bill, @debt], confirm: "Are you sure?", method: :delete %>
</td>
我的模特们:

票据模式:

class Bill < ActiveRecord::Base
  has_many :debts
end
classbill
债务模式:

class Debt < ActiveRecord::Base
  belongs_to :bill
end
classdebt

提前谢谢

你有一个
有很多关联。如果一张
票据
有许多
债务
,那么
票据.债务
是一个关联,而不是单个对象。您需要对该对象调用
destroy\u all
,以销毁所有对象:

def destroy
  @bill = Bill.find(params[:bill_id])
  @debts = @bill.debts.find(params[:id])
  @debts.destroy_all

  flash[:notice] = "The debt was successfully deleted"
  redirect_to bill_debts_url    
end

话虽如此,我不知道为什么
账单
会被销毁…

也许你应该接受一些答案…而且,债务和账单是完全一样的(在你发布的代码中)
def destroy
  @bill = Bill.find(params[:bill_id])
  @debts = @bill.debts.find(params[:id])
  @debts.destroy_all

  flash[:notice] = "The debt was successfully deleted"
  redirect_to bill_debts_url    
end