Ruby on rails 3 数字验证-对另一个属性的引用
我需要验证来检查一个属性是否小于或等于同一记录的另一个(虚拟)属性。我该怎么做 示例代码(不工作-命名错误):Ruby on rails 3 数字验证-对另一个属性的引用,ruby-on-rails-3,validation,activerecord,Ruby On Rails 3,Validation,Activerecord,我需要验证来检查一个属性是否小于或等于同一记录的另一个(虚拟)属性。我该怎么做 示例代码(不工作-命名错误): (请温柔而明确,我是RoR新手:)由于这些验证行将在第一次遇到类定义时执行,self.virt不存在 您通常可以传入lambda/proc,而该lambda/proc将在验证时从对象的范围中调用called: validates :my_attr, :numericality => { :less_or_equal => lambda { virt } } 不过,这仍然不
(请温柔而明确,我是RoR新手:)由于这些验证行将在第一次遇到类定义时执行,
self.virt
不存在
您通常可以传入lambda/proc,而该lambda/proc将在验证时从对象的范围中调用call
ed:
validates :my_attr, :numericality => { :less_or_equal => lambda { virt } }
不过,这仍然不是很好。更好的方法是定义自己的验证方法:
validate :my_attr_is_within_range
def my_attr_is_within_range
my_attr <= virtual_attribute
end
验证:我的属性在范围内
def我的属性在范围内
我的母亲
validate :my_attr_is_within_range
def my_attr_is_within_range
my_attr <= virtual_attribute
end