我有一个用状态标志(这是一个tinyint(1))定义的mysql表。 但是,当我尝试检查值是真还是假时,我似乎得出了错误的结果。也就是说,它不会看到该值作为一个合法的真或价值,而是测试的,如果它不是“无”或类似的 - 因此我的“似乎没有工作”Ruby TinyInt(1)?
results.each_hash do |row|
# What I tried
# (a)
if row['status']
# do something - doesn't seem to work
end
# (b)
if row['status'].to_i == 1
# this seems correct
end
# (c)
if row['status'] == false
# doesn't seem to work
end
end
什么是正确的方法检查这个值(tinyint(1)),因为它应该是Ruby中的TrueClass或FalseClass;然而(c)本身不起作用。
这是我所使用的参考 - 我假定这应该在导轨和红宝石本身适用(除非ActiveRecord的做的工作) - http://www.orthogonalthought.com/blog/index.php/2007/06/mysql-and-ruby-on-rails-datatypes/
TinyINT get的解释在大多数语言中C#等是“布尔”,抱歉,Ruby也是如此(应该将它看作TRUECLASS或FALSECLASS) – 2013-04-05 10:38:03