migration ファイルの null: false について
コードレビューにて、migration ファイルに null: false をつけたほうが良いという指摘を受けたので、メモ。
結論としては、null: false も presence: true も両方設定したほうが良い。
null: false
指定したカラムがデータベースにカラの状態で保存されることを防ぐ。
class CreateUsers < ActiveRecord::Migration def change create_table :reviews do |t| t.string :name t.string :email null: false t.timestamps null: false end end end
presence: true
ActiveRecord のバリデーション。(Railsアプリケーションの判定)
指定したカラムが空の状態で保存されることを防ぐ。
class User < ApplicationRecord validates :name, presence: true end
presence: true は Rails アプリケーションの判定であるが、直接DBにデータを登録しようと思えばできてしまう。そこで、DB へ空のデータが保存できないようにするために、null: false が必要になってくる。