Rails:成功完成AJAX POST后,返回ID

时间:2012-06-29 21:20:58

标签: ruby-on-rails ajax

我正在使用以下代码创建Impressions模型的新实例:

var id;
$.ajax({
  type: 'POST',
  url: '/impressions',
  data: {'impression[content]':tags[i].book.impression, 'impression[user_id]':current_user},
  success: function(){id="<%= @impression.id %>";},
  dataType: 'html',
});
alert(id);

成功后,我希望它返回新实例的id号,但当前函数会导致运行时错误,指出@ impression.id为nil - 在反射时,当然它在运行时为零。我怎么能从数据库中提取id?

1 个答案:

答案 0 :(得分:1)

这样做的一种方法是让你的控制器代码渲染json。例如,如果您的创建代码只是

render :json => @impression

(可能在responds_to块内)然后该数据将传递给您的成功函数。如果你声明为

function(data){
    ...
}

并将dataType设置为json,然后data将是您呈现的json对象,您将能够获取所有展示的属性,包括其id。当然你可以渲染你想要的任何json - 你不必将整个对象变成json。