我在我的模型中有这两个字段 - recurring_interval 和 recurring_time - 我需要验证的是,这两个字段将同时设置或不设置。
如果用户想要设置重复,他将需要设置这两列。但如果他不这样做,他会把这些专栏留空。
怎么做?
答案 0 :(得分:0)
您可以添加自定义验证:
class MyModel
...
validate :verify_recurring_stuff
..
private
def verify_recurring_stuff
ri = self.recurring_interval
rt = self.recurring_time
if ri.blank? != rt.blank?
self.errors.add(:base, 'Your error message')
end
end
end
答案 1 :(得分:0)
class User < ActiveRecord::Base
validates_with Recurring_validator
end
class RecurringValidator < ActiveModel::Validator
def validate(record)
if record.recurring_interval.blank? != record.recurring_time.blank?
record.errors[:base] << "Error message"
end
end
end
这种方法的优点是,您也可以将验证器类用于其他模型。