如何在进行ajax调用后从控制器呈现部分

我在向控制器中的方法发出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":"

Hi

"}

这反映了我的部分主题/节省,但页面没有重新加载或显示我的部分。

但是,我想实际重定向或渲染(显示)实际的部分。 任何建议?

你的代码应该是这样的

 $.ajax({ type: 'GET', url: '/topics/savings_easter_egg', data: { savings: data[key]['saving'] }, dataType: 'json', success: function(data) { $('your div').html(data.html); } }); 

你必须在你的成功函数中使用那个响应,只需添加到你上面的div中。