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

特定のモデルによっては、このようなものが、検証に組み込まれたレールの代わりになる場合があります。

于 2014-09-22T23:35:21.970 に答える
-1

これを行う方法が見つからなかったため、datetimeフィールドをフィールドに変更することになりましたdate

日付を別のタイムゾーンに変換する機能が失われるため、これは最も望ましいことではありませんが、私の場合は引き続き機能します。

于 2013-04-10T13:27:16.373 に答える