#migrationファイル内のnull: falseって何?
これを入れておくと、指定したカラムに空の状態で保存させるのを防ぎます。
class CreateMessages < ActiveRecord::Migration[5.0]
def change
create_table :messages do |t|
t.references :user, foreign_key: true
t.string :content, null: false ←ここ
t.string :title, null: false ←ここ
t.timestamps
end
end
end
モデルファイルに下記のようにバリーデーションするだけの場合、
validates :content, presence: true
これのみだと、Rails側で保存させないだけなので、ブラウザ上では入力できませんが、
SQLから実行すると値は保存できてしまいます。
なのでモデルにpresence: true
などでバリデーションかける場合は、マイグレーションファイルにnull: false
を指定置くと安心です。