我需要在模型中验证少数属性,只有在更新或创建对象时它们出现在params
中。
validates :attribute_a,format: {with: /some_regex/}, :if => lambda{ |object| object.attribute_a.present? }
与attribute_a
一样,attributes
或created
可能不存在多个updated
。而不是为每个validates
编写inclusion_in
语句,有没有办法可以检查多个属性的存在,然后使用format:{with:/some_regex/ }
或validates :attribute_a,attribute_b,attribute_c,attribute_d,:format => {:with =>
/some_regex/}, :if => lambda{ |object| object.attribute_name.present? }
等常见验证来验证每个属性。
我想要类似以下代码的内容显然是错误的。
{{1}}
答案 0 :(得分:2)
您可以使用validates_format_of
:
validates_format_of :attr_a, :attr_b,
with: /someregexp/,
allow_blank: true
allow blank选项意味着如果该属性不存在,则regexp不必匹配。