🥚

[Ruby on Rails] migrateファイルのnull: falseについて

2022/04/11に公開

環境

Windows10
rails 6.1.4
ruby 2.6.3

例.

class CreateNotifications < ActiveRecord::Migration[6.1]  
  def change  
    create_table :notifications do |t|  
      t.integer :visitor_id, null: false   ←ここの説明です  
      t.integer :visited_id, null: false  ←ここの説明です  
      t.integer :post_id  
      t.integer :post_comment_id  
      t.string :action, default: '', null: false  
      t.boolean :checked, default: false, null: false  
      t.timestamps  
    end  
 end  
end

※null: falseを入れることによって指定したカラムに空の状態で保存されるのを防ぎます。

modelにバリデーションを設定しただけでは、ブラウザ上では入力出来ませんが、SQLから実行すると、入力出来てしまいます。
validates :action, presence: true
なので、modelにpresence: trueを記述する際は、マイグレーションにnull: falseの記述を 追加するとSQLからも入力出来ないです。

お疲れ様でした。
記述に誤りがありましたら、ご指摘宜しくお願い致します。

Discussion