質問

でRailsは、あなたがこのようなユニークな組み合わせ値を持っていることを確認するために検証を使用することができますから2.xます:

validates_uniqueness_of :husband, :scope => :wife
それはこのようになり、対応する移行には、

add_index :family, [:husband, :wife], :unique => true

このは夫/妻の組み合わせがデータベース内で一意であることを確認します。さて、3レール内での検証構文が変更とスコープ属性がなくなっているようです。それは、今のように見えます:

validates :husband, :presence => true

私はRailsの3の組み合わせの検証を達成することができますどのように任意のアイデア? Railsの2.xの検証のRailsで、まだ仕事3

?私はまだ最初の例を使用することができますが、それはそう「古い」に見える、より良い方法があるので、
役に立ちましたか?

解決

私と一緒に

ベア。 ActiveModelで検証しメソッドが動作する方法は、バリデータを探すことです。

:presence => trueのための

PresenceValidatorのルックスとオプション渡し:バリデータの初期化にtrue

私はしたいと思います。

validates :husband, :presence => true, :uniqueness => {:scope => :wife}

(一意バリデータは実際のActiveRecordの一部ではなく、ActiveModelである。開発者は、このセットアップを設定する方法を本当に面白いです。それは非常にエレガントです。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top