我有一個has_many:through模型,完美地工作。Rails:dependent =>摧毀,想調用另一個動作而不是銷燬
has_many :varietals
has_many :grapes, :through => :varietals, :dependent => :destroy
我想調用另一個操作,而不是:destroy。事實上,我不想取消該項目或銷燬它,我想更新記錄狀態字段從1到0,而不是銷燬記錄。
如何調用自定義方法而不是銷燬?我想我可以在模型中做到這一點......謝謝。
把這個方法放在哪裏?在主模型或模型中,記錄將被銷燬?
編輯:
我很抱歉,但我覺得我沒有足夠的解釋我的問題。我的問題不僅僅是在主模型被破壞之後如此。即使主記錄沒有被破壞,我也想在Varietal模型本身中自定義destroy操作。
喜歡的東西:
class Varietal < ActiveRecord::Base
private
def destroy
self.update_attributes(:status => 0)
end
end
其實這個動作是不是叫......
我更新了我的第一條消息,並解釋更多...如何更改破壞方法? – 2012-02-17 12:43:03
沒關係,如果你看到我以前的評論(刪除)... Phyo和Shingara有權利。 – ScottJShea 2012-02-17 17:28:34
我很抱歉,但問題不在於我的模型中的關聯。如果我只有一個模型,我不能覆蓋destroy方法來改變它的行爲。這什麼都不做。添加之前或之後的回調不會改變摧毀:該項目將被銷燬。 – 2012-02-17 21:52:07