rails+mysqlな環境では、booleanで定義したカラムはtinyint(1)で作られ、中身はtrue/falseではなく、0/1が入る。 そして、railsアプリケーション上でmysqlのtinyint(1)型データを扱う時、値は自動的にtrue/falseとして扱われる。 そこまでは知っていたんだけど、select('foobar_flg as fb_flg')というふうに、カラム名をエイリアスして取り出すと値が0/1なのは知らなかった。 具体的には下記のとおりである。 pry(main)> p = User.select(:foobar_flg) User Load (10.5ms) SELECT `users`.`foobar_flg` FROM `users` => [#<User id: nil, foobar_flg: false>] pry(main)> p.fir