我有三个班级:学校,帐户和管理员。破坏前验证
学校
的has_many:administatorships
的has_many:管理员:通过=>:遗产管理人
帐户
的has_many:遗产管理人
管理人的职位
belongs_to :account
belongs_to :school
before_destroy :confirm_presence_of_alternate_administratorship_in_school
protected
def confirm_presence_of_alternate_administratorship_in_school
unless school.administrators.count(["administratorships.account_id != #{id}"]) > 0
errors.add_to_base "The school must have at least one administrator"
end
end
现在,我想发生的事情是,当我打电话destroy
对管理人的职位的实例,为它的错误添加到模型,并防止模型的破坏。我已经删除了except语句以查看是否阻止了添加错误,但事实并非如此。似乎在模型上有错误并不能防止发生破坏。
所以我的问题是,有什么办法可以防止使用验证发生破坏?我意识到我可以定义一种只有满足上述条件才能销毁的方法,但似乎验证方法是更优雅的解决方案。
可能重复[我如何验证'在摧毁在轨道](http:// stackoverflow。问题/ 123078 /我如何做 - 我在轨道上被破坏) – 2014-06-26 18:50:28
不应该是'> 1'吗?在删除发生之前,是不是执行了这个查询? – panzi 2016-02-10 18:09:11
@panzi这是它的统计任何管理员没有当前管理员的帐户ID – tanman 2016-02-11 18:22:44