0

このスレッドを読んだ後、belongs_to オブジェクトとその ID の検証の違いを説明していますが、関連する質問があります。

私は次の検証を持っています

validates_presence_of :batch_id
validates_numericality_of :batch_id, :only_integer => true, :greater_than => 0

2 番目の追加チェックは :batch_id を検証する価値がありますか、それとも冗長ですか?

理論的には、Rails は batch_id のセマンティックな意味を認識しており、存在するだけでなく、より完全に検証できます。たとえば、batch_id の値を -1 に設定する必要はありません。

ありがとう。

4

1 に答える 1

1

使用する必要があります

belongs_to :batch
validates_presence_of :batch

この場合、Rails は指定されたバッチ ID がデータベースに存在するかどうかをチェックします。を使用するvalidates_presence_of :batch_idと、Rails は batch_id プロパティの存在を整数としてのみチェックします。データベースに存在するかどうかを確認したくないが、それを肯定的にしたい場合は、 を使用する必要がvalidates_numericality_ofあります。これは冗長ではありません。

于 2012-04-29T10:24:41.503 に答える