🥚
[Ruby on Rails] 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からも入力出来ないです。
お疲れ様でした。
記述に誤りがありましたら、ご指摘宜しくお願い致します。
Discussion