Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用布局和局部进行双重渲染_Ruby On Rails 3_Layout_Partial Views_Render - Fatal编程技术网

Ruby on rails 3 使用布局和局部进行双重渲染

Ruby on rails 3 使用布局和局部进行双重渲染,ruby-on-rails-3,layout,partial-views,render,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" r

好的,我有一个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) %>
“page”,:object=>@page)%>

好的,我知道了。很抱歉发了这个帖子,但我会回答的,以防其他人有问题。基本上,在控制器文件的顶部,我只需要这一行:

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

不知道为什么在调用render的确切位置在操作中调用render。简而言之:你不需要在那里做。如果这样做,rails将在方法返回控件时再次尝试渲染,因此您要么在调用render后从方法返回,要么不在方法中调用它