1.MySQL はテキスト列のデフォルト値をサポートしていません (そのため、移行を使用してデフォルト値を指定することはできません)
2.次のコード
after_initialize do |obj|
obj.column1 ||= "default_value"
end
バギーです。たとえば、次の場合に明示的に指定された値を上書きします:MyModel.new(column1: nil)
またはMyModel.new { |obj| obj.column1 = nil }
したがって、私が考えることができる唯一の単純で多かれ少なかれ正しいアプローチは次のとおりです。
after_initialize do |obj|
obj.column1 ="default_value" if obj.new_record? and !obj.column1_changed?
end
より良い解決策を提案できますか?