閲覧ありがとうございます!
バリデーションとカラムオプションの役割の違いが分かりません。よろしくお願い致します。
前提
動物テーブル | |
---|---|
動物名 | string |
動物名は、絶対に存在するとした場合、
ruby
1##migration 2create_tabe :animals |t| 3 t.string :name, :null => false 4end 5 6##model 7class Animal < ApplicationRecord 8 validates :name, presence: true 9end
マイグレーションとモデルの両方に記載できるかと思います。
疑問:モデルのバリデーションだけに条件を付せたらいいのでは?
- マイグレーションは、DBのスキーマ変更の役割を担うもの。(テーブル及びカラム)
- バリデーションは、レコードを作成、変更する際に働くもの(レコード)
とそれぞれの視点(担う役割)が異なる事は分かるのですが、最終的には手を加えたいレコードの動物名がnullでは無いことが分かればいいので、モデルだけに条件を付せばいいのでは?。。。。
生SQLを発行した場合、モデルだけでは対処できないので、DBスキームのオプションも必要になってくる???
モデルに条件を付すのは、新規登録、編集する際にエラーを出させるため?
よろしくお願いいたします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/22 06:36