2012-05-21 88 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 }) %>");