2011-06-24 10 views
1

私はレイアウトをレンダリングしようとするshowメソッドを持っています。そして、showビューはいくつかの部分をレンダリングしますが、レールではダブルレンダリングエラーが発生します。レイアウトとパーシャルをレンダリングするにはどうしたらいいですか?それはデフォルトのレイアウトでうまく描画されることに注意してください。ここでレイアウトとパーシャルを使ったダブルレンダリング

は私のコントローラのアクション

def show 
    @site = Site.find_by_subdomain!(request.subdomain) 
    @page = @site.pages.find_by_name('index') 

    render :layout => "layouts/mobile" 
    respond_to do |format| 
    format.html # show.html.erb 
    format.xml { render :xml => @site } 
    end 
end 

され、私の見解では、単純に次のようになります。

<%= render(:partial => "page", :object => @page) %> 

答えて

2

OK]をクリックして、それを考え出しました。申し訳ありませんが、投稿には問題がある場合に備えてお答えします。基本的に私のコントローラファイルの先頭には、次の行が必要でした。

layout "layouts/mobile", :only => [:show] 
+0

正確には:-) – mkro

0

あなたが呼び出した場所であなたのアクションでレンダリングを呼び出す理由がわかりません。要するに、あなたはそこでそれをする必要はないはずです。これを行うと、メソッドがコントロールを返すときにレールが再びレンダリングしようとするので、レンダリングを呼び出した後にメソッドから戻るか、メソッド内で呼び出さないかのどちらかです。

関連する問題