require "active_record" ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") ActiveRecord::Schema.define { create_table(:users) { _1.integer :age, default: 20 } } class User < ActiveRecord::Base; end u = User.new p u.age, u.age_before_type_cast
~ ruby hoge.rb -- create_table(:users) -> 0.0031s 20 "20"
なんとなくInteger型カラムのデフォルト値はInteger型だと思っていたんですよ。 正確には、ageの値はInteger型で、age_before_type_castの値は文字列型でした。
before_type_castなんだから、そらそうですね・・・。