我需要进行自定义验证,检查正在更新的属性是否小于该记录上的另一个属性。我试过这样做:
validates :team_size, :numericality => { :greater_than_or_equal_to => self.users.count }
但它返回错误:
NoMethodError (undefined method `users' for #<Class:0x007fcda9a548e8>):
我也试过用这样before_save
的方法做一个钩子:
def validate_team_size
if self.team_size < self.users.count
errors[:base] << "Custom message."
end
end
但它只是忽略了它 - 我假设因为该team_size
属性尚未更新,所以我正在检查旧值。还尝试使用after_save
which is just before it commit 但也没有运气。