Двойной рендеринг с макетом и партиалами

Итак, у меня есть метод show, который пытается отобразить макет, а представление show отображает пару частичных фрагментов, но я получаю двойную ошибку рендеринга в rails. Как заставить его отображать макет и части? Обратите внимание, что он отлично отображается с макетом по умолчанию.

Вот мое действие контроллера

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) %>

person Msencenb    schedule 24.06.2011    source источник


Ответы (2)


Ок разобрался. Извините за пост, но я отвечу на него, если у кого-то возникнет проблема. В основном в верхней части моего файла контроллера мне просто нужна была эта строка:

layout "layouts/mobile", :only => [:show]
person Msencenb    schedule 24.06.2011

Не уверен, почему вы вызываете рендеринг в своем действии именно в том месте, где вы его вызываете. Короче говоря: вам не нужно делать это там. Если вы это сделаете, то rails попытается отрендерить снова, когда метод вернет управление, так что вам придется либо вернуться из метода после вызова render, либо не вызывать его в методе.

person mkro    schedule 24.06.2011