2010-07-28 3 views
12

빈 몸체로 200 상태를 반환하려고하는데 레일이 단일 공간의 본문을 반환합니다. 즉, 내용 길이 예를 들어 1빈 몸체를 레일로 반납하는 방법은 무엇입니까? 즉 내용 길이 0

,이 코드는 하나의 공간

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

으로 몸을 생성하고 그래서 렌더링도,이

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

예를 수행합니다 아무것도 뭔가를 생성하지 않습니다.

이 모든 것들은 바디가 비어있는 경우 헤더를 무시할 수있는 사파리의 버그를 수정하기 위해 고안된 2005 년 패치에서 나온 것 같습니다. (http://dev.rubyonrails.org/changeset/1818)

아무도 200 개의 상태를 얻는 방법에 대한 생각이 있지만 정말로 빈 몸체가 있습니까? 배경 : 컨트롤러를 호출하는 API를 사용하고 있습니다. 200을 보내야하지만 단일 우주 몸체가 API를 오작동시킵니다 (구문 분석 오류 ...). 또한, 2005 년 해킹을 취소하기 위해 Action Pack을 패치 할 수 없으므로 Heroku에 배치 할 것입니다.

아무쪼록 고맙습니다.

답변

26

이 레일 3의

render :text => "" 

작동하도록 나타납니다, 당신은 사용할 수 있습니다

레일 (5)에서 render :nothing => true

, render :nothing => true

(5.1 제거 계획)는 지원되지 않습니다 용도 :

def action 
    head :ok 
end 

Rails 5 솔루션은 this question입니다.

+0

이것은 나에게도 효과적입니다! 너 멋지다! 매우 빠른 응답에 감사드립니다. 나는 당신의 반응이 너무 단순하다는 것을 너무 좋아합니다. – rhh

+2

'render : nothing => true'는 레일 3.2.13을 가지고 내용 길이 1을 반환합니다. –

+0

레일 4 답변 : http://stackoverflow.com/questions/4632271/render-nothing-true-returns-empty-plaintext-file – rmcsharry

관련 문제