2011-07-26 7 views
1

私はアタッチメントモデルでブール値のmain_imageというフィールドを持つレールアプリケーションを持っています。データベース内に1つのみの真の複数の偽を許可することを想定していますが、今ではスコープがあるので、別のモデルである各アセットごとに1つずつ許可します。複数の偽を許可する方法はありますが、1つの添付ファイルにつき1つの唯一の真偽を許可する方法以来レールモデルは1つの値の1つではなく、他の倍数をモデル化します

validates_uniqueness_of :main_image, :scope => [:asset_id], :if=>:main_image 

を:私は今、私のモデルに次のコードを使用してこの問題を解決した

+0

編集を回答に移動し、受け入れられた回答として設定します。そうすれば、人々は答えがないと思ってそれをクリックしません。(私のように) –

+0

私はそれが私に今それを可能にするかどうかを見ます。 (評判ポイントが100未満のユーザーのために)いつ、いつ行ったのかについての時間制限があります。 –

+0

私は自分の回答を掲載しましたが、2日間受け入れることはできません。 –

答えて

3

main_imageが真か偽のどちらかである、これはmain_imageフィールドを取り、必ずそれが各ASSET_IDのためにユニークであることを確認すると言いますそれが真である場合に限り、真でない場合はfalseを返し、モデルが一意であるかどうかのチェックをスキップするためです。