2012-01-06 12 views
0

私は、ネストされたリソースを持って[削除ルートは3.1

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

法案は削除され、負債は削除されません。 どうしますか?特定のビルの債務を1つだけ削除する方法はありますか? これは私の負債のコントローラの私の削除アクションです。

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

おそらくあなたには、いくつかの答えを受け入れる必要があります... – sethvargo

+0

また、借金と請求書はまったく同じです(投稿したコード内) – sethvargo

答えて

1

あなたはhas_manyの関連付けを持っています。 billhas_manydebtsの場合、bill.debtsは1つのオブジェクトではなく、関連付けです。あなたはそれらのすべてを破壊するために、そのオブジェクトに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は全く破壊されている理由私はわからないんだけど...

関連する問題