我正在使用以下代码创建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?
答案 0 :(得分:1)
这样做的一种方法是让你的控制器代码渲染json。例如,如果您的创建代码只是
render :json => @impression
(可能在responds_to
块内)然后该数据将传递给您的成功函数。如果你声明为
function(data){
...
}
并将dataType设置为json,然后data
将是您呈现的json对象,您将能够获取所有展示的属性,包括其id。当然你可以渲染你想要的任何json - 你不必将整个对象变成json。