我有一个模型PunchingRequest和一个模型PunchingInformation,在PunchingInformation中我有两个字段,punch_in_time和punch_out_time。当且仅当punch_in_time或punch_out_time中的至少一个包含值时,我想在冲压请求表中插入记录。我有一个包含与PunchingRequest和PunchingInformation相关的字段的表单。我如何强制进行此验证?
答案 0 :(得分:1)
使用这样的自定义验证:
validate :presence_of_punch_in_time_or_punch_out_time
def presence_of_punch_in_time_or_punch_out_time
# Use PunchingInformation.where(...)
# or this.your_object_relation_with_punching_information
# to get the other model row.
errors[:base] << "Wrong punching information" unless row.punch_in_time || row.punch_out_time
end
答案 1 :(得分:0)
您可以在PunchingRequest模型中编写自定义验证,例如
validate :validate_punching_information
def validate_punching_information
errors[:base] << 'Either punch in or punch out should be present' if self.punching_information.punch_in_time.nil? && self.punching_information.punch_out_time.nil?
end
我假设PunchingRequest和PunchingInformation是一对一相关的