2012-09-07 6 views
9

batman-rails gem을 통해 node.js 프레임 워크 batman.js로 실행중인 레일 앱을 가져 오려고합니다.json으로 응답 할 때 406 오류가 발생합니다.

내 레일 컨트롤러에 json으로 응답 할 때마다 매번 406 오류가 발생하며 이유를 알지 못합니다. 내 컨트롤러는 다음과 같습니다.

respond_to :json 

    def index 
    respond_with Sample.all 
    end 

이것은 406을 제공합니다. 나는 이것이 배트맨과 관련이 있다고 생각하지 않지만, 그 자체를 가로 채고있다. 그러나 좋은 측정을 위해, 여기 내 배트맨 코드입니다 :

index: (params) -> 
    TopNavTemplate.Sample.load (err) -> throw err if err 
    @set 'samples', TopNavTemplate.Sample.get('all') 

그리고 내 index.html.erb 파일은 단순히 '지수', 정말 아직 배트맨과 아무것도 안하고 있다고 말했습니다.

많은 JSON 관련 질문이 있으며 아직 내 상황에 적용 할 수 없었습니다. JSON을 respond_withRay로 만들기 위해 내가 잘못하고있는 것이 있습니까?

SamplesController.rb

class SamplesController < ApplicationController 
    respond_to :json 

    def show 
    respond_with Sample.find(params[:id]) 
    end 

    def index 
    respond_with Sample.all 
    end 
end 

내가 의도 한대로 /samples.jsonsamples/1.json, 그것은 일 방문 :

답변

24

좋아, 내가 당신의 상황을 확인하는 매우 간단한 응용 프로그램을 만들었다. 그러나 /samples/samples/1 (확장자가 .json이 아님)으로 갔을 때 406 오류가 발생했습니다.

resources :samples, defaults: {format: :json} 

그렇지 않으면, 레일 응용 프로그램이 HTML 응답과 요청에 응답하려고 시도를 다음과 같이 .json 확장자없이 URL의 일을하기 위해

, 당신은 당신의 config/routes.rb 파일을 수정해야 .

+0

+1 정말 고마워요! –

+2

저는 배트맨 레일스 (Batman 's Rails) 저장소 어댑터가 .json을 모든 요청에 ​​기본적으로 추가한다는 요즘 사람들을 주목하고 싶습니다. – Kombo

관련 문제