0

Rails 3.1 では、モデル内のフィールドの存在を次の方法で検証できます。

validates :name, :presence => true

データベース移行ファイルでは、次のこともできます

t.string :name, :null => false

検証は保存する前にデータの整合性をチェックする方が良いようです。ただし、データベースのチェックは、中止する前に実際の保存を開始した可能性のある保存プロセス中にのみ発生します。モデルのバリデーションの方が優れていますか? 本当にありがとう。

4

2 に答える 2

1

モデルにバリデーションを記述することは、メンテナンス性が高く、必要に応じて簡単に変更でき、すべてのコア ログインを 1 か所にまとめることができるため、一般的には良い方法です。

そのようなことを db レベルでのみ記述すると、テスト ケースの記述が問題になり、後で戻ったときに、そのような「ロジック」を db レベルで記述したことに気付かない場合があります。

実際、私はモデルに「デフォルト」値を書いています (ただし、これについては議論の余地があります)。この理由は、デフォルト オプションを持つことはビジネス ログインであるため、モデル レベルで行う必要があるためです。

上記の理由から、そのようなコードをモデル レベルで記述することをお勧めします。

于 2012-05-21T06:29:38.023 に答える