我有一个嵌套资源:
resources :bills do
resources :debts
end
当我在debts视图中的索引html中创建一个删除链接时,如下所示:
<td>
<%= link_to "Delete", [@bill, @debt], confirm: "Are you sure?", method: :delete %>
</td>
该法案被删除,而不是债务。
会发生什么?,我怎样才能删除特定账单中的一笔债务?
这是我在债务控制器中的删除操作。
def destroy
@bill = Bill.find(params[:bill_id])
@debt = @bill.debts.find(params[:id])
@debt.destroy
flash[:notice] = "The debt was successfully deleted"
redirect_to bill_debts_url
end
我的模特:
比尔模特:
class Bill < ActiveRecord::Base
has_many :debts
end
债务模型:
class Debt < ActiveRecord::Base
belongs_to :bill
end
提前致谢!
答案 0 :(得分:1)
您有has_many
个关联。如果是bill
has_many
debts
,则bill.debts
是关联,而不是单个对象。您需要在该对象上调用destroy_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
话虽如此,我不确定Bill
为什么会被摧毁......