ruby - rails - Имеет логическое значение False - ничего не выводит - PullRequest
0 голосов
/ 18 января 2011

В моей базе данных есть запись, которая является логическим полем (true / false).

Поле архивировано.Когда значение «заархивировано» - «истина», все это прекрасно работает для вывода значения «истина»:

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

НО, если значение «заархивировано» - ложь, ничего не выводится ни для одного из вышеперечисленных.Как я могу получить вывод false, когда поле FALSE?

Спасибо

Ответы [ 3 ]

3 голосов
/ 18 января 2011

Я предпочитаю использовать .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 > 
3 голосов
/ 18 января 2011

Попробуйте .to_s на поле?

irb(main):001:0> false.to_s
=> "false"
irb(main):002:0> true.to_s
=> "true"
irb(main):003:0>
1 голос
/ 18 января 2011

false.to_s == 'false', но Rails.logger.info, кажется, здесь делает не то:

> puts true
true
> puts false
false
> Rails.logger.info true
true
> Rails.logger.info false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...