Railsでは、情報を検証するために、検証またはデータベースの制限を使用できます。Railsでは、データベースの制限ではなく、いつ検証を使用するべきですか?
すなわち:
移行:モデルから
t.string "name", :limit => 25
検証:
validates_length_of :name, :maximum => 25
私は検証が提出からフォームを防ぎ、マイグレーション/データベースの制限省からデータを防止するであろうことを理解データベースに格納します。しかし、奇妙なことに、検証やデータベースの制限を使用する場合、または両方を同時に使用する必要がある場合は、
これは異なる意見を持っていますが、私は可能な限り常に両方を行います。 – Iceman
私はバリデーションが柔軟性を高め、エラーメッセージを処理するのがより簡単で、より簡単であると考えています。また、入力がユーザーから来ている場合は優先されるかもしれません。どちらもあなたのDBに入力されないことを確認するので、どちらも安全です。 –
@KcUS_unico複数のスレッド/プロセスがアプリケーションを実行しているときに、モデルの一意性検証が実際にDBの一意性を保証するわけではないことに注意してください。 –