[英]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.