我的db中有一个布尔字段的记录(true / false)。
该字段已存档。当归档为真时,所有这些都很好地输出true:
Rails.logger.info @commentable.archived
Rails.logger.info @commentable.archived?
Rails.logger.info !!@commentable.archived?
但是当存档为假时,它不输出上述任何一个。当字段为FALSE时,如何获得false输出?
由于
答案 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