2
使用Rails 3,我有一個has_many地址的賬戶模型。在地址模型中,我定義了一個before_destroy回調方法,該方法可防止銷燬,並在地址對象與第三個模型關聯時向地址對象添加錯誤。這可以很好地防止刪除帳戶或地址。Rails before_destroy錯誤消息可從父母訪問
我的問題出現在刪除帳戶,因爲我期望帳戶對象的錯誤包含地址錯誤,但它沒有。有沒有辦法在帳戶錯誤中包含地址錯誤消息?
使用Rails 3,我有一個has_many地址的賬戶模型。在地址模型中,我定義了一個before_destroy回調方法,該方法可防止銷燬,並在地址對象與第三個模型關聯時向地址對象添加錯誤。這可以很好地防止刪除帳戶或地址。Rails before_destroy錯誤消息可從父母訪問
我的問題出現在刪除帳戶,因爲我期望帳戶對象的錯誤包含地址錯誤,但它沒有。有沒有辦法在帳戶錯誤中包含地址錯誤消息?
錯誤消息通常分配給它們應用的模型對象。
如果你真的想,你可以抓住這些錯誤,並在您的地址模型的誤差哈希他們堅持:
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?
方法。 (免責聲明:代碼未經測試,但應該給你一個很好的起點)