我在向控制器中的方法发出AJAX请求后尝试渲染部分。这是我目前的AJAX电话:
$('.savings_link').click(function(event){
$.ajax({
type: 'GET',
url: '/topics/savings_easter_egg',
data: {
savings: data[key]['saving']
} ,
dataType: 'json',
});
event.preventDefault(); // Prevent link from following its href
});
此调用当前有效,它会触及我的控制器方法,我尝试返回并渲染部分。
def savings_easter_egg
@savings = params[:savings] if params[:savings]
return render :json => {
:html => render_to_string({
:partial => "topics/savings",
:locals => { :savings => @savings }
})
}
end
使用firebug,我得到了回复:
{"html":"<p>Hi</p>"}
反映了我的部分主题/节省,但页面没有重新加载或显示我的部分内容。
但是,我想实际重定向或渲染(显示)实际的部分。有什么建议吗?
答案 0 :(得分:2)
你的代码应该是这样的
$.ajax({
type: 'GET',
url: '/topics/savings_easter_egg',
data: {
savings: data[key]['saving']
},
dataType: 'json',
success: function(data) {
$('your div').html(data.html);
}
});
你必须在你的成功函数中使用该响应,只需添加到上面的div中。