3

ユーザーとドキュメント モデルがあります。ユーザーは多くのドキュメントを持ち、ドキュメントはユーザーに属します。これを一般化して、親モデルと子モデルを持つだけにすることができます。

現在、子モデルの単体テストを書いていますが、parent_id フィールドも検証する必要があるかどうか疑問に思っています (たとえば、only_integer、ゼロより大きい、id が親テーブルに存在するなど)。それらは固有の外部キー属性であるため、私のためにそれを行いますか?

4

2 に答える 2

5

Rails 3ウェイは

# child.rb
validates :parent, presence: true
于 2012-12-07T20:42:58.523 に答える
3

Rails を介しても外部キー制約を追加できます (つまり、手動で DB に接続して生の SQL を実行する必要はありません) が、モデル自体でも同様に実行できます。

# child.rb
validates_presence_of :parent

これにより、parent_id があり、その ID が Parent テーブル内にあることが確認されます。

それ以外の場合、いいえ、Rails は制約を自動的にチェックしません。

于 2012-12-07T20:25:03.937 に答える