でも、上記のコードだと、特定の文字列リテラルを直接比較に使っているため、次のような意見をもらったりする。 Viewが修正されて、'1'ではなく'true'という文字列が渡されてきた時にどうする? '1'がマジックストリング的で意図がわかりにくい ※ マジックストリングかどうかは議論の余地あるけど、Rubyだと0も1も真なので気持ちはわかる じゃあ、どう書き換えればいいかという話。 Rails 4.2の場合 ActiveRecord::Type::Boolean#type_cast_from_userメソッドが使える。 引数と戻り値は以下のようなパターンになる。 ActiveRecord::Type::Boolean.new.type_cast_from_user(0) # false ActiveRecord::Type::Boolean.new.type_cast_from_user(1