2012-05-21 3 views
3

레일을 사용하여 지금부터 시작하겠습니다. 간단히 생각해 봅니다. 나는 한 아약스 호출이 파셜 렌더링해야합니다레일에서 ajax 호출로 부분 뷰 렌더링하기

을 나는 다음과 같은 컨트롤러가 있습니다

# 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 탭 -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 }) %>");