내 애플리케이션에 검색 페이지가 있습니다. 결과가 (분명히) 0 일 수 있습니다. 페이지가 결과를 반환하면 HTTP 200을 사용하고 결과가없는 경우 페이지에 HTTP 204를 반환합니다.Rails HTTP 204가 렌더링 템플릿이 아닙니다.
이 프로세스는 동시 호출 인 초기로드에서 작동합니다. 결과가 없다면 HTTP 상태가 204 인 결과가 없다는 페이지가 제대로 표시됩니다.
그러나 HTML을 통해 결과를 반환하는 검색을 수행 한 다음 내 검색 필터를 사용하여 알려진 빈 결과를 얻습니다 설정하면 AJAX 호출이 발생하고 컨트롤러가 작동하고 로그에 HTTP 204가 반환되지만 해당 JS 템플릿 (페이지를 다시 렌더링 함)은로드되지 않습니다 (예 : 표시 할 스피너를 계속 볼 수 있음). 그 일은 끝나고있다).
HTTP 상태 코드가 204 인 경우 레일즈가 AJAX 템플릿을 렌더링하지 못하도록합니까?
참고 : 아무런 결과가없고 status: :no_content
지시어를 사용하지 않아도 앱이 정상적으로 작동합니다. 하지만 결과가없는 200 개의 HTTP 상태가 잘못된 것 같습니다.
편집 - 대응 코드 내 결과를 필터링 한 후
, 나는 (will_paginate
를 사용)를 쪽수를 매기다. 내 컨트롤러 메소드의 마지막 줄은 다음과 같습니다 레일 5에서
render :index, status: @results.total_entries.zero? ? :no_content : :ok
여기서 204 코드를 지정하는 방법과 작동하지 않을 수있는 위치를 설명하는 약간의 코드를 추가해야합니다. – tadman
@tadman - duh, thanks. 끝난. – CDub
'log/development.log' 파일에 204가 보이거나 거기에 잘못된 코드가 있습니까? – tadman