#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側の設定。
結論:目的の場所が異なるので両方設定しておくことが良いですね。