[Ruby on Rails] migrateファイルのnull: falseについて
migrateファイルのnull: falseとは
環境
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からも入力出来ないです。
お疲れ様でした。
何か間違いがありましたら、ご指摘宜しくお願い致します。