MyModelでは、次の:file_id
ようにフィールドを検証しています。
validates :file_id, :uniqueness => {:scope => :date_uploaded}
このフィールド:date_uploaded
は日時フィールドです。
:scope
上記で:file_id
、日時の日付部分に対してのみ一意にするように指定する方法はあります:date_uploaded
か?
前もって感謝します!
MyModelでは、次の:file_id
ようにフィールドを検証しています。
validates :file_id, :uniqueness => {:scope => :date_uploaded}
このフィールド:date_uploaded
は日時フィールドです。
:scope
上記で:file_id
、日時の日付部分に対してのみ一意にするように指定する方法はあります:date_uploaded
か?
前もって感謝します!
同様の問題が発生しました。イベントの日時を記録したいが、日付の一意性のみを検証したい。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
特定のモデルによっては、このようなものが、検証に組み込まれたレールの代わりになる場合があります。
これを行う方法が見つからなかったため、datetime
フィールドをフィールドに変更することになりましたdate
。
日付を別のタイムゾーンに変換する機能が失われるため、これは最も望ましいことではありませんが、私の場合は引き続き機能します。