tinyint(1)はActiveRecordでbooleanになる
ちょっとはまってしまった・・・
ソースを確認してみる
lib\active_record\connection_adapters\mysql_adapter.rb
def native_database_types #:nodoc
{
:primary_key => "int(11) DEFAULT NULL auto_increment PRIMARY KEY",
:string => { :name => "varchar", :limit => 255 },
:text => { :name => "text" },
:integer => { :name => "int", :limit => 11 },
:float => { :name => "float" },
:datetime => { :name => "datetime" },
:timestamp => { :name => "datetime" },
:time => { :name => "time" },
:date => { :name => "date" },
:binary => { :name => "blob" },
:boolean => { :name => "tinyint", :limit => 1 }
}
end
回避する方法
config/environment.rb
ActiveRecord::ConnectionAdapters::MysqlAdapter.emulate_booleans = false
条件文を統一して変更すればいいのですが・・・