레일 3 리모트 폼:콘텐츠 유형을 지정하려면 어떻게 해야 합니까?
저는 Rails 3.2를 사용하고 있으며, 폼을 가지고 있으며, 그것을 Ajax를 통해 게시하고 컨트롤러가 json을 반환하도록 하고 싶습니다.
다음과 같이 도우미에 대해 form_을 사용하고 있습니다.
= form_for(@object, :remote => true, :format => :json) do |f|
....
개체 컨트롤러 생성 방법은 다음과 같습니다.
def create
respond_to do |format|
if @object.save
format.html { redirect_to @object }
format.json { render json: @object, status: :created, location: @object }
else
format.html { render action: "new" }
format.json { render json: @object.errors, status: :unprocessable_entity }
end
end
end
폼은 예상대로 제출하고 있습니다.하지만 컨트롤러는 html을 반환하고 있습니다.json이 아닙니다!
firebug를 사용하여 요청을 검사하고 ajax 요청의 Content-Type http 헤더가 application/html로 설정되어 있는지 확인합니다.
이에 관한 문서는 매우 희박합니다. :format = > :json은 http 헤더를 실제로 수정하지 않고 폼 액션에 ".json"을 추가하는 것 같습니다.
content_type = > :json도 시도해 봤지만 효과가 없었습니다.
html을 반환하고 싶은 장소가 있기 때문에 컨트롤러에 json을 반환하도록 하드코드를 설정할 수 없습니다.
form_for를 사용할 때 컨트롤러에 json을 렌더링하도록 지시하는 방법을 아는 사람이 있습니까?
도와주셔서 감사합니다.
content-type은 다음과 같이 설정할 수 있습니다.
= form_for(@object, :remote => true, :syslog => {:'data-type' => 'json')
rails.js 라인 106에 기재되어 있는 바와 같습니다.
레일 5의 경우, 적절한 방법은 데이터 속성을 설정하는 것입니다.data: { type: :json }.
언급URL : https://stackoverflow.com/questions/9583380/rails-3-remote-form-how-do-i-specify-the-content-type
'programing' 카테고리의 다른 글
| 워드프레스로 특정 페이지 내보내기 (0) | 2023.03.17 |
|---|---|
| 이미지 파일을 다시 로드하도록 강제 리액트하시겠습니까? (0) | 2023.03.17 |
| 리액트 라우팅은 로컬머신에서는 동작하지만 Heroku에서는 동작하지 않습니다. (0) | 2023.03.17 |
| 방화벽 기반에서 모든 자식 내부에 특정 값이 있는 속성을 쿼리하는 방법 (0) | 2023.03.17 |
| TypeError: 정의되지 않은 'contextTypes' 속성을 읽을 수 없습니다. (0) | 2023.03.17 |