2012-01-10 22 views
0

私はRails 2.3で検証を書こうとしています。Rails 2.3のカスタム一意性検証

私は2つのフィールドを持っています。それらをrecord_idとuser_idと呼ぶことにしましょう。

record_idには、user_idとNameプロパティの両方が関連付けられます。

ユーザーが新しいレコードを作成するときに、Nameプロパティがまだ使用されていないことを確認する必要があります。 user_idが同じであるにもかかわらずrecord_idが異なる場合、ユーザーが一意でない名前を入力しようとすると、エラーが発生するはずです。

record_idとuser_idが同じで、ユーザーがデータベースに既に存在する名前を作成しようとすると、ユーザーは既に使用中の名前をユーザーに許可する必要があります。

私はRails 2.3でかなり新しくなっているので、どのようなガイダンスも最も高く評価されています。

答えて

1

だから、ユーザーごとに複数の名前を許可し、重複しているユーザーの名前を確認したいのですか?

validates_uniqueness_of :name, :scope => :user_id 
0

データベース側で[:user_id、:name]にユニークインデックスを追加します。

validate_uniquenessはパフォーマンスに大きな影響を与えます - レコードの作成または更新にselectを追加しますが、実際には同時更新のために何も保証されません

関連する問題