我的模型有 start_time:time 和 end_time:time 字段。我想要做的是检查我的特定预订模型的 start_time 到 end_time 范围是否与任何其他预订重叠。
因此,如果在 2 号星期三下午 4 点至 6 点之间有预订,则下午 4 点至 6 点期间的任何时间都不能再进行预订。我该怎么做呢?我不太确定如何根据其他预订条目中的其他 start_time、end_time 元组验证时间范围。
最佳答案
也许像这样:
def intersects?(reservation)
to = reservation.end_time
from = reservation.start_time
Reservation.where('start_time > ? OR end_time < ?', to, from).count > 0
end
关于ruby-on-rails - rails 3 : Validating Model uniqueness of Time within a Time Range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853370/