我有一个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