Подтвердить что ты не робот

Ruby integer to boolean

У меня есть поле БД, которое является целым типом, а значения всегда равны 0 или 1. Как я могу получить эквивалентное булевское значение в ruby? так что, когда я делаю следующее, флажок установлен соответствующим образом:

<%= check_box_tag 'resend', @system_config.resend %>
4b9b3361

Ответ 1

Вы можете использовать метод zero?. Он возвращает true, если 0. Если вам нужно вернуться назад, вы можете легко отменить его до [email protected]_config.resend.zero?. Или вы можете расширить класс Fixnum, добавив метод to_b?, поскольку все открыто и расширяемо в динамических языках.

class Integer
  def to_b?
    !self.zero?
  end
end

alt text

Ruby API: http://ruby-doc.org/core/classes/Fixnum.html#M001050

Ответ 2

1 - это ваше единственное истинное значение здесь. Таким образом, вы можете получить значение логической истины с помощью number == 1.

Ответ 3

У меня была такая же проблема, и я имел дело с этим следующим образом:

def to_boolean(var)
case var
        when true,'true',1,'1'
        return true
        when false, 'false',0,'0'
        return false
end
end

Это работает с формами, базами данных и людьми, которые не знают рубина. Я нашел его полезным, особенно с Rails, поскольку параметры часто передаются/интерпретируются как строки, и я не хочу об этом беспокоиться.