使用Rails 3,我有一个拥有多个地址的帐户模型。在地址模型中,我定义了一个before_destroy回调方法,该方法可以防止破坏,并在地址与第三个模型相关联时向地址对象添加错误。这样可以防止删除帐户或地址。
我的问题是在删除帐户时出现,因为我希望帐户对象的错误包含地址错误,但事实并非如此。有没有办法在帐户错误中包含地址错误消息?
答案 0 :(得分:0)
错误消息通常分配给它们适用的模型对象。
如果你真的想,你可以抓住这些错误并将它们粘贴在地址模型的错误哈希中:
class Account < ActiveRecord::Base
before_destroy :check_for_destruction
def check_for_destruction
rejected = addresses.reject{|a| a.can_destroy?} # returns array of addresses that now have errors (they should return false)
rejected.each do |address|
address.errors.each do |e|
errors.add_to_base(e)
end
end
end
end
假设您已经定义了Address#can_destroy?
方法,那样的东西应该可以工作。
(免责声明:代码未经测试,但应该给你一个很好的跳跃点)