LoginSignup
9
10

migrationファイルのnull: falseって?

Last updated at Posted at 2020-03-17

#migrationファイルのnull: falseって?

###→指定したカラムが(データベースに)カラの状態で保存されることを防ぐ

rb
class CreateNotifications < ActiveRecord::Migration[5.2]
  def change
    create_table :notifications do |t|
      t.integer :visitor_id, null: false
      t.integer :visited_id, null: false
      t.string :action, default: '', null: false
      t.boolean :checked, default: false, null: false
      t.timestamps
    end
    add_index :notifications, :visitor_id
    add_index :notifications, :visited_id
  end
end

#モデルに記載するvalidates :content, presence: trueと何が違うの?
似たバリデーションとして、presence: trueがあります。
これは、
#####Railsの方でカラの情報を保存させないようにするためのものです。
データベース側ではSQLで保存することができてしまうのですね。

#どちらを記載すれば良いのか?
どちらも記載しておくと安全ですね。
migrationファイルでは、データベースに対する設定なのに対して、
modelファイルでは、Rails側の設定。
結論:目的の場所が異なるので両方設定しておくことが良いですね。

9
10
0

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
  3. You can use dark theme
What you can do with signing up
9
10