ユーザーごとに 1 日 1 回だけモデルの保存/更新を許可する必要がある Rails モデルがあります。ユーザーと日付で検索してエラーに追加するコールバックがありますが、これは見苦しく、レールに似ていません。私は典型的な created_at / updated_at 列を持っています (そして時間部分は重要です/それを維持する必要があります)。
だから私はどちらかができると思います:
1)作成日とそれによる範囲だけの別のモデル属性を作成します(bleh)
2) :scope 属性を使用しますが、どうにかして created_at の日付部分だけを取得します。
3) => Proc.new{ |o| でない限り検証します。既存のコールバックに一致するファインダー } (グロス)
http://ar.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000086
これらの数が圧倒的に多いわけではありませんが、Ruby ではなく SQL で実行することをお勧めします (明らかなスケーラビリティの理由から)。
何かご意見は?より良い方法はありますか?