ruby - rails - 处理布尔值假 - 它什么都不输出

时间:2011-01-18 19:26:04

标签: ruby ruby-on-rails-3

我的db中有一个布尔字段的记录(true / false)。

该字段已存档。当归档为真时,所有这些都很好地输出true:

  Rails.logger.info @commentable.archived
  Rails.logger.info @commentable.archived?
  Rails.logger.info !!@commentable.archived?

但是当存档为假时,它不输出上述任何一个。当字段为FALSE时,如何获得false输出?

由于

3 个答案:

答案 0 :(得分:3)

在该字段上尝试.to_s

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

答案 1 :(得分: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 > 

答案 2 :(得分:1)

false.to_s == 'false',但Rails.logger.info似乎做错了:

> puts true
true
> puts false
false
> Rails.logger.info true
true
> Rails.logger.info false