Ruby on Railsのboolean型のカラムを1 / 0で更新すると、true / falseになる件
注意:実行結果を書いただけで詳しく調査していないので、参考程度で。。
railsでboolean型のカラムに対して、1 / 0 でパラメータを渡して更新したら、true / false になって登録されました。 これって、こういうものなのでしょうか。。
環境
Ruby 1.9.3p448 Rails 2.3.18 DB PostgreSQL9.3.2
確認した手順
productsテーブルにcdというboolean型のカラムを追加しました。
\d products; テーブル "public.products" 列 | 型 | 修飾語 ------------+-----------------------------+------------------------------------------------------- id | integer | not null default nextval('products_id_seq'::regclass) name | character varying(255) | price | integer | created_at | timestamp without time zone | updated_at | timestamp without time zone | cd | boolean | インデックス: "products_pkey" PRIMARY KEY, btree (id)
コンソールで確認。
$ ruby script/console >> product = Product.new => #<Product id: nil, name: nil, price: nil, created_at: nil, updated_at: nil, cd: nil> >> product.attributes = {:cd => "1"} => {:cd=>"1"} >> product.cd => true ↑「1」を渡すと、trueになりました。 >> product.attributes = {:cd => "0"} => {:cd=>"0"} >> product.cd => false ↑「0」を渡すと、falseになりました。
他にも2とか9とか、aaaなどをパラメータで渡してみましたが、falseが返ってきました。1のときだけtrueになるようです。
これは、rubyだからとかではなく、プログラム的にそういうものなのでしょうか。。 継続して調査したいと思います。 取り急ぎ、忘れないためにメモ。