4

只是弄乱了导轨布局。浏览指南 2.2.11.2 :layout 选项

创建了一个名为 two_column_landing 的简单布局,并将其放在 app/views 下的 layouts 目录中。

然后修改我的视图来渲染布局:

<h1>Ca#tcl</h1>
  <p>Find me in app/views/ca/tcl.html.erb</p>

  <%= render layout: "two_column_landing" %>

我收到此错误:

You invoked render but did not give any of :partial, :template, :inline, :file or :text option.

我知道这在生产代码中作为一种习惯可能不是一件好事,但我只是想知道如何做我想做的事。任何想法为什么这不起作用?这不是rails 4的功能吗?

4

2 回答 2

2

你可能会继续阅读。有很多方法可以使用布局。如果你想为给定的动作调用一个特定的布局,你应该在你的控制器中而不是在你的视图中这样做。如果你需要在视图中调用,给局部布局,那么语法是不同的,你先调用局部然后布局。

<%= render "comments", layout: "two_column_landing" %>

如果您只想让 2 列视图在特定控制器中呈现,那么在任何方法定义调用之前的控制器顶部,在类名下

layout "two_column_landing"

如果您只想为控制器中的特定操作调用此布局,您可以在方法 render 中执行此操作

   def index
     @people = Person.all
     render layout: "multi-column"
   end 
于 2013-10-09T16:46:37.957 回答
0

我用这个并且在rails 4上工作得很好

def index
    @people = Person.all
    render :layout => "my-layout-name"
end
于 2015-09-20T09:03:55.390 回答