結論
標題で全てな気がするのですが、以下の例のとおりです。自前で nil
を代入した場合には、そのカラムは DEFAULT
の値が自動で入ってくれません*1。
例として、User
というモデルを使います。ここで、height
というカラムに NOT NULL
制約がついていて、DEFAULT
が -1
であるとします。
レコード新規作成時
> User.new => #<User:0x00007f9709765500 id: nil, height: -1, (以下省略)
自分で値を代入する
> attrs_for_new_user_record = { height: nil } > User.new(attrs_for_new_user_record ) => #<User:0x00007f9709765500 id: nil, height: nil, (以下省略)
*1:上書きされる。当然といえば当然