Rails docs имеют эту информацию для Object#blank?
Объект является пустым, если он является ложным, пустым или строкой пробела. Например, «», ««, nil, [] и {} не заполнены.
Но источник этого метода такой:
# File activesupport/lib/active_support/core_ext/object/blank.rb, line 12
def blank?
respond_to?(:empty?) ? empty? : !self
end
Теперь, когда я открываю свою маленькую удобную командную строку и набираю ruby -e 'p " ".empty?'
, она возвращает false. Это означает, что Rails должен сказать, что это пустое значение, когда его явно нет. Но! Я открываю свой rails console
, и я печатаю " ".empty?
и получаю false, как моя предыдущая прямая командная строка. Но я набираю "" .blank? и я становлюсь правдой, как обещает мне Rails.
Чего мне не хватает в понимании того, как метод Rails blank?
работает с методом empty?
String?