所以我Shift model
start_date
和end_date
我想写一个不允许彼此重叠的验证器。
例如:
#<Shift id: 88, start_date: "2013-11-11 08:00:00", end_date: "2013-11-12 08:00:00">
我不应该像这样创建Shift:
> Shift.create(start_date: "2013-11-12 07:00".to_datetime)
如何实现?
答案 0 :(得分:1)
你也可以使用这个宝石:validates_overlap
答案 1 :(得分:0)
您必须在此处添加自定义验证
class Shift < ActiveRecord::Base
validate :does_not_overlap
def does_not_overlap
if Shift.exists?("start_date > 2013-11-12 07:00")
errors.add(:start_date, "cannot overlap")
end
end
end