Jquery 为什么RubyonRails返回null而不是json对象

Jquery 为什么RubyonRails返回null而不是json对象,jquery,ruby-on-rails,ruby,Jquery,Ruby On Rails,Ruby,我是Rails新手,所以这是非常基本的,我确信我遗漏了一些简单的东西。我试图向一个操作发送一些JSON,并让它返回JSON响应。下面是我尝试的一个简化版本 我正在使用的jQuery: var request = { 'voter': { 'voter_name': 'John', 'voter_email': 'john@john.com'} }; var url = 'http://someip/Voters/create'; $.ajax({ type: 'POST',

我是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
这看起来应该返回得很好,特别是考虑到控制台显示的投票者对象很好:

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

就像您在调试日志输出中所做的那样。

如果使用
curl
点击该操作,您会看到什么?回答是空的吗?我现在被困在一个窗口框里,所以这是一个很好的问题。如果我用GET直接在浏览器中访问该操作,我会看到:{“投票者”:{“created_at”:null,“updated_at”:null,“voterr_email”:null,“voterr_name”:null}是你发布到与发布页面不同的域上的url吗?这一点上实际上都是通过IP实现的。最终将是不同的领域。奇怪的是,服务器肯定收到了帖子,因为我甚至让它写入sqlite。它只是没有任何响应。能否从开发日志中包含一个片段,显示POST请求击中了您的
create
操作?感谢您的响应。我试过了,但似乎没什么不同。