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

Как вернуть действительно пустое тело в рельсы? то есть длина содержимого 0

Я пытаюсь вернуть статус 200 с пустым телом, но рельсы возвращают тело с одним пробелом. то есть длину содержимого 1

Например, этот код генерирует тело с единственным пространством

respond_to do |f|
  f.html {head :ok}
end

и это делает

respond_to do |f|
  f.html {render :nothing => true}
end

Да, даже render: ничего не генерирует.

Все это, похоже, вытекает из патча 2005 года в рельсах, который был предназначен для исправления ошибки в Safari, где он игнорировал бы заголовки, если тело было пустым. (http://dev.rubyonrails.org/changeset/1818)

Есть ли у кого-нибудь мысли о том, как получить статус 200, но с действительно пустым телом? Предпосылки: Я использую API, который вызывает вызовы для моих контроллеров. Мне нужно отправить 200, но одно тело тела вызывает ошибку API (ошибка синтаксического анализа...). Кроме того, я буду развертывать в Heroku, поэтому я не могу исправить ActionPack, чтобы отменить взлом 2005 года.

Спасибо за любые мысли.

4b9b3361

Ответ 1

Это работает

render :text => ""

Для Rails 3 вы можете использовать:

render :nothing => true

В Rails 5, render :nothing => true устарел (планируется удалить в 5.1)

Используйте

def action
  head :ok
end

Подтвердите этот вопрос для решения Rails 5.