Тестирование, если заголовок присутствует, используя пустое? против пустых?

В главе 4 Rails Tutorial мне было любопытно, была ли причина для использования empty? скорее, чем blank? при тестировании, чтобы увидеть, если заголовок присутствовал? Очевидно, я новичок в рельсах, но я подумал blank? Метод обеспечил немного большую гибкость.

module ApplicationHelper

  # Returns the full title on a per-page basis.
  def full_title(page_title = '')
    base_title = "Ruby on Rails Tutorial Sample App"
    if page_title.empty?
      base_title
    else
      page_title + " | " + base_title
    end
  end
end

2 ответа

Я думаю, это может быть связано с тем, что blank будет иметь значение true для строк, содержащих пробельные символы, и потому что в вашем коде page_title инициализируется по умолчанию, поэтому проверка на nil не требуется.

Причина по которой page_title проверяется против empty? потому что по умолчанию page_title это строка Контракт на full_title ожидает строку, а не ноль.

Если бы вы должны были пройти в full_title(nil) к этому методу, он будет взорван, говоря неопределенный метод empty? для нулевого класса.

В любом случае, blank? просто проверяет nil? || empty?

Другие вопросы по тегам