我有一個用狀態標誌(這是一個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