0

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

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

该字段:date_uploaded是日期时间字段。

有没有办法在:scope上面指定我希望:file_id仅在日期时间的日期部分中是唯一的:date_uploaded

提前致谢!

4

2 回答 2

2

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

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 的一个很好的替代方案。

于 2014-09-22T23:35:21.970 回答
-1

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

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

于 2013-04-10T13:27:16.373 回答