我想查看用户是否勾选了“matches_applicant_address”框 - 然后确保没有提交任何地址详细信息。
这适用于Rails4
validates :address_line_1, :address_line_2,
:absence => true, :if => Proc.new{matches_applicant_address.present?}
有人知道如何在不使用缺席验证方法的情况下写出这个吗?
答案 0 :(得分:3)
在Rails 3中,您可以使用validates_each指定自定义验证:
validates_each :address_line_1, :address_line_2, :if => Proc.new{ matches_applicant_address.present? } do |record, attr, value|
record.errors.add(attr, "can't be present") unless value.blank?
end
答案 1 :(得分:1)
你可以做到
validate :address_lines_absent, if: Proc.new{ matches_applicant_address.present? }
def address_lines_absent
errors.add :address_line_1 if address_line_1.present?
errors.add :address_line_2 if address_line_2.present?
end
通过添加到errors数组,这将使模型无效。