2
我是Rails的新手,所以这是非常基本的,我敢肯定我缺少一些简单的东西。我试图发送一些JSON到一个动作,并让它在JSON中返回一个响应。下面是我尝试的简化版本。为什么ruby在rails上返回null而不是json对象
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)都显示我null。没有对象正在返回。任何指针将不胜感激。
如果用'curl'命中该动作,你会看到什么?答案是否为空? – cam 2010-08-17 23:35:21
此刻,我被困在一个窗口框中,所以这是一个非常好的问题。如果我在GET浏览器中直接访问该操作,我会看到: {“voter”:{“created_at”:null,“updated_at”:null,“voter_email”:null,“voter_name”:null}} – Jared 2010-08-17 23:44:38
您正在发布的网址与发布网页的网址不同吗? – 2010-08-17 23:58:23