search
LoginSignup
57

More than 3 years have passed since last update.

posted at

migrationファイル内のnull: falseとは

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を指定置くと安心です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
57