3

私は今レールから始めていますが、単純に疑問があると思います。1 回の ajax 呼び出しで 2 つのパーシャルをレンダリングする必要があります。

私は次のコントローラーを持っています:

# 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 インスタンスを使用できるようにするにはどうすればよいですか?

ありがとう、ジョアオ

4

1 に答える 1

9
$('#tabs-1').html("<%= j(render @host) %>");
$('#tabs-2').html("<%= j(render :partial => 'host2', :locals => { :host => @host }) %>");
于 2012-05-21T13:02:57.750 に答える