我有一个涉及员工缺勤记录的应用程序。
我需要确保每条记录的开始日期和结束日期不重叠。
因此,例如,如果我输入了今天开始并明天结束的缺勤记录,则不应以任何方式输入该日期范围内的另一个缺勤记录。所以我不能制作一个从前一天开始,然后在后天结束,或者任何更晚的日期。
简单地说,我需要使日期范围独一无二。
实现这一目标的最佳方法是什么?
模型类中涉及遍历所有记录的自定义验证器需要很长时间才能完成,而且我还没有找到任何解决这个问题的 gem。我也没有找到任何简单的方法来通过模型中的唯一性来确定范围。我很难过:/
谢谢你的时间!
编辑:
class Absence < ActiveRecord::Base
attr_accessible :date, :date_ended, :status, :reason, :form, :user_id, :tempuser, :company_id
belongs_to :user
default_scope { where(company_id: Company.current_id) }
validates :date, :date_ended, :status, :reason, :form, :user_id, presence: true
validates_numericality_of :user_id, :only_integer => true, :message => "can only be whole number."
end