ruby-on-rails - rails 3 : Validating Model uniqueness of Time within a Time Range

标签 ruby-on-rails validation time model

我的模型有 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/

相关文章:

javascript - 表单 -> 具有 jQuery 验证的数据库

ruby-on-rails - rails : Validating min and max length of a string but allowing it to be blank

javascript - 如何为 HTML 验证提供自定义验证错误消息?

ruby - 如何比较 ruby 中的时间

c - 是否可以 Hook 任何时间检索功能

ruby-on-rails - rails 、yml 和多行

ruby-on-rails - nginx后面为什么瘦?

PHP - strftime(忽略分钟和秒)?

ruby-on-rails - 显示 View 中的 "Previous post"和 "Next post"链接(嵌套资源)

ruby-on-rails - 这是对 Rails 单表继承的合法使用吗?