簡體   English   中英

為什么ruby on rails返回null而不是json對象

[英]Why is ruby on rails returning null instead of json object

我是Rails的新手,所以這真的很基礎,我敢肯定我缺少一些簡單的東西。 我正在嘗試向操作發送一些JSON,並使其返回JSON中的響應。 下面是我正在嘗試的簡化版本。

我正在使用的jQuery:

var request = { 'voter': { 'voter_name': 'John', 'voter_email': 'john@john.com'} };

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

似乎應該返回的還不錯,特別是考慮到控制台顯示的Voter對象還不錯:

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

問題是我的警報(或我嘗試查看此數據的任何其他方式)都顯示為空。 沒有對象被返回。 任何指針將不勝感激。

我認為您需要在渲染之前將實例轉換為JSON。 像這樣:

render :json => @voter.to_json

就像在調試日志輸出中一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM