2010-08-17 5 views
2

레일스를 처음 접해 보았습니다. 그래서 이것은 정말 기본이며, 나는 뭔가 간단하다고 생각합니다. 액션에 JSON을 보내고 JSON에서 응답을 반환하려고합니다. 제가 시도하고있는 단순화 된 버전은 아래에 있습니다.왜 json 객체 대신 null을 반환하는 ruby가 무엇입니까?

JQuery와 내가 사용하고 있습니다 :

var request = { 'voter': { 'voter_name': 'John', 'voter_email': '[email protected]'} }; 

var url = 'http://someip/Voters/create'; 

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: request, 
    success: function (data) { alert(data); }, 
    error: function (data) { alert(data); }, 
    dataType: 'json' 
}); 

내 조치 :

def create 
    @voter = Voter.new(params[:voter]) 

    logger.info(@voter.to_json) 

    render :json => @voter 
end 

그것은이 잘 유권자 객체를 보여주는 특히 콘솔을 고려, 잘 반환해야처럼 보인다 :

Processing VotersController#create (for someip at 2010-08-17 21:19:51) [POST] 
Parameters: {"voter"=>{"voter_name"=>"John", "voter_email"=>"[email protected]"}} 
{"voter":{"created_at":null,"updated_at":null,"voter_email":"[email protected]","voter_name":"John"}} 
Completed in 11ms (View: 1, DB: 0) | 200 OK [http://someip/Voters/create] 

문제는 내 경고 (또는 다른 방법으로이 da를 보려고합니다. TA)는 모두 나를 보여주고 있습니다. 반환되는 개체가 없습니다. 모든 포인터 크게 감사하겠습니다.

+0

'컬 (curl)'로 그 액션을 쳤다면 어떻게 될까요? 응답이 비어 있습니까? – cam

+0

나는 아주 좋은 질문이므로 지금은 윈도우 박스에 붙어 있습니다. 내 브라우저에서 GET을 통해 해당 작업에 직접 액세스하는 경우 : { "voter": { "created_at": null, "updated_at": null, "voter_email": null, "voter_name": null}} – Jared

+0

게시하고있는 URL이 게시중인 페이지와 다른 도메인에 있습니까? –

답변

1

렌더링하기 전에 인스턴스를 JSON으로 변환해야한다고 생각합니다. 이와 같이 :

render :json => @voter.to_json 

디버그 로그 출력과 마찬가지로.

+0

응답 해 주셔서 감사합니다. 나는 그것을 시도했고 그것은 차이를 만드는 것처럼 보이지 않았다. – Jared

관련 문제