2

我有一个模型 Person,具有以下关联:

has_many :distributions

accepts_nested_attributes_for :distributions, :allow_destroy => true

validate :distributions_must_total_100

自定义验证当前在不应该失败的情况下失败——当一些验证被标记为销毁时——因为它们仍然出现在 Person 和它的分布被保存。

我想ActiveRecord::AutosaveAssociation.marked_for_destruction?在我的验证器中使用,以忽略即将被销毁的分布。

  1. 我如何达到这种方法?不太确定 Distribution(您的正常 Rails 模型)与该类的关系是什么。

  2. 这是一个可怕的不洁黑客吗?它只是感觉有点脏,这是解决问题的最精确的方法。

我确实在调试器中逐步检查了 ActiveRecord 源代码,以确认记录实际上已标记为销毁(即不是 Javascript 或表单构建器错误)。

4

1 回答 1

0

原来你可以调用marked_for_destruction?Distribution 的一个实例,它工作正常。

于 2009-08-28T13:47:31.403 回答