2012-05-21 87 views
3

我现在就开始使用rails了,我只是简单地问我想。 我需要呈现在一个AJAX呼叫的两个谐音:在rails中使用ajax调用渲染部分视图3.1

我有以下控制器:

# GET /hosts/1 
# GET /hosts/1.json 
def show 
    @host = Host.find(params[:id]) 

    respond_to do |format| 
     format.html #show.html 
     format.js 
     format.json { render :json => @host } 
    end 
end 

和相应的模板(show.js.erb):

$('#tabs-1').html("<%= escape_javascript(render @host) %>"); 

而且一部分文件名为_host.html.erb

所有这一切正常。模板“_host.html.erb”在div tabs-1中呈现,但现在我需要在不同的id(#tabs-2)中添加其他部分模板,但使用相同的@host 我该如何做到这一点?默认情况下,render @host方法将使用模板文件“_host.html.erb”。我怎样才能调用一个像_host2.html.erb这样的不同的主机,并拥有相同的@host实例?

感谢, 若昂

回答

8
$('#tabs-1').html("<%= j(render @host) %>"); 
$('#tabs-2').html("<%= j(render :partial => 'host2', :locals => { :host => @host }) %>");