1

我有一个模型PunchingRequest 和一个模型PunchingInformation,在PunchingInformation 我有两个字段,punch_in_time 和punch_out_time。当且仅当punch_in_time 或punch_out_time 中至少有一个包含值时,我想在冲压请求表中插入记录。我有一个包含与 PunchingRequest 和 PunchingInformation 相关的字段的表单。我怎样才能强加这个验证?

4

2 回答 2

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
于 2012-11-02T08:37:27.207 回答
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 是一对一相关的

于 2012-11-02T08:31:47.417 回答