Double Render with layout和partials

时间:2011-06-24 22:49:39

标签: ruby-on-rails-3 layout partial-views render

好吧所以我有一个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) %>

2 个答案:

答案 0 :(得分:2)

好的想通了。对不起该帖子,但我会回答它以防其他人有问题。基本上在我的控制器文件的顶部我只需要这一行:

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

答案 1 :(得分:0)

不确定为什么要在您调用它的确切位置调用渲染中的渲染。简而言之:你不应该在那里做。如果你这样做,rails会在方法返回控件时再次尝试渲染,所以你必须在调用render之后从方法返回,或者不在方法中调用它。