2011-01-18 7 views
0

DBにブール値フィールド(true/false)のレコードがあります。ruby​​-rails - ブール値の処理False - 何も出力しない

フィールドはアーカイブされています。アーカイブされている場合、これらはすべて真の出力になります:

Rails.logger.info @commentable.archived 
    Rails.logger.info @commentable.archived? 
    Rails.logger.info [email protected]? 

しかし、アーカイブされている場合は、上記のいずれの場合も何も出力しません。フィールドがFALSEの場合、どのようにしてFALSEの出力を得ることができますか?

ありがとうございました

答えて

3

フィールドで.to_sを試してみてください。

irb(main):001:0> false.to_s 
=> "false" 
irb(main):002:0> true.to_s 
=> "true" 
irb(main):003:0> 
3

出力からログへの出力には、.inspectを使用することをお勧めします。あなたが無価値を得るならば、その出力がより有用であるとわかります。

ruby-1.8.7-p302 > nil.to_s 
=> "" 
ruby-1.8.7-p302 > nil.inspect 
=> "nil" 
ruby-1.8.7-p302 > false.to_s 
=> "false" 
ruby-1.8.7-p302 > false.inspect 
=> "false" 
ruby-1.8.7-p302 > 
+0

をしかし、これはログ出力のためではありません。それはテストのためだけに使用されたものです。 – AnApprentice

1

false.to_s == 'false'が、Rails.logger.infoここで間違ったことやっているようだ。おかげ

> puts true 
true 
> puts false 
false 
> Rails.logger.info true 
true 
> Rails.logger.info false 
関連する問題