如何在铁轨中返回真正的空体?即内容长度为0

时间:2010-07-28 08:51:33

标签: ruby-on-rails

我正在尝试使用空体返回200状态,但rails返回具有单个空格的主体。即内容长度1

例如,此代码生成具有单个空格

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

这样做

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

是的,甚至渲染:什么都没有产生。

所有这些似乎都来自2005年的一个修补程序,用于修复Safari中的一个错误,如果正文是空的,它会忽略标题。 (http://dev.rubyonrails.org/changeset/1818

有没有人对如何获得200状态但真正空洞的身体有任何想法?背景:我正在使用一个API来调用我的控制器。我需要发送200但单个空间体导致API出现故障(解析错误......)。此外,我将部署到Heroku,因此我无法修补ActionPack以撤消2005 hack。

感谢您的任何想法。

1 个答案:

答案 0 :(得分:28)

这似乎有效

render :text => ""

对于Rails 3,您可以使用:

render :nothing => true

在Rails 5中,render :nothing => true已弃用(计划在5.1中删除)

使用

def action
  head :ok
end

感谢this question获取Rails 5解决方案。