Rails使用日期范围和时间范围验证唯一性

时间:2019-09-23 14:12:34

标签: mysql ruby-on-rails

我有一个涉及创建财产促销的应用程序。我的数据库表中有以下属性:-

 create_table :property_promotions do |t|

  t.string :title
  t.date :start_date
  t.date :end_date
  t.time :start_time
  t.time :end_time

  t.timestamps null: false
end

现在,我想创建日期和时间都唯一的property_promotions。 不要知道如何验证每个property_promotions在日期和时间上都不重叠。

尝试以下查询,但未能创建具有日期和时间的唯一记录。

PropertyPromotion.where("(DATEDIFF(start_date, ?) * DATEDIFF(?, end_date)) >= 0 AND (TIMEDIFF(start_time, ?) * TIMEDIFF(?, end_time)) > 0", end_date, start_date, end_time, start_time)

0 个答案:

没有答案