some_field 属性が変更されていない場合でも (他のフィールドが変更されている場合)、 validates_uniqueness_of :some_field が「保存」時に実行されるようです。validates_uniqueness_of ごとにデータベース呼び出しが必要になるため、これは無駄に思えます。Proc を validates_uniqueness_of に渡して some_field が変更されたかどうかを確認できることはわかっています。すべての検証を実行し、可能な限りそれを行うことを検討しています。私が疑問に思っているのは:
1) それは、パフォーマンスに関心のある人々が一般的に検証で行うことですか?
2)属性が最初に変更されたかどうかを確認するvalidates_uniqueness_ofのデフォルトの動作ではないのはなぜですか?
3) 変更されていない属性に対してそのような検証を実行する正当な理由はありますか?
私は Rails 2.3 を使用しています (現時点では、アップグレードに取り組んでいます)。これがRails 3でも同じ状況かどうかはわかりません。