ruby on rails—基于datetime字段中的日期进行唯一性验证



在MyModel中,我像这样验证:file_id字段:

validates :file_id, :uniqueness => {:scope  => :date_uploaded}

字段:date_uploaded是一个日期时间字段。

是否有一种方法可以在上面的:scope中指定我希望:file_id仅对:date_uploaded中的日期时间的日期部分是唯一的?

提前感谢!

刚刚遇到了类似的问题。我们想记录事件的日期时间,但只想验证日期的唯一性。最终在模型中做了一个before_create方法。rb文件:

before_create :check_date_uniqueness
def check_date_uniqueness
   if Model.where(:datetime => self.datetime.to_date.beginning_of_day..self.datetime.to_date.end_of_day).exists?
     return false
   else
     return true
   end
end

根据您的具体模型,像这样的东西可能是rails内置验证的一个很好的替代方案。

我找不到这样做的方法,所以我最终将datetime字段更改为date字段。

我知道,这不是最理想的事情,因为它剥夺了将日期转换为不同时区的能力,但在我的情况下仍然有效。

相关内容

  • 没有找到相关文章

最新更新