ruby целое число в булево - PullRequest
       0

ruby целое число в булево

27 голосов
/ 21 августа 2010

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

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

Ответы [ 3 ]

52 голосов
/ 21 августа 2010

Вы можете использовать метод zero?. Возвращает true, если 0. Если вам нужно вернуться назад, вы можете легко отрицать его до !@system_config.resend.zero?. Или вы можете расширить класс Fixnum, добавив метод to_b?, поскольку в динамических языках все открыто и расширяемо.

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

alt text

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

9 голосов
/ 21 августа 2010

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

2 голосов
/ 02 июня 2014

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

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

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

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