Rails 4如何在视图中使用渲染布局选项?

时间:2013-10-09 16:17:09

标签: ruby-on-rails ruby-on-rails-4

只是搞乱了rails布局。完成guide 2.2.11.2:布局选项

创建一个名为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.

我知道在生产代码中做这个习惯可能不是一件好事,但我只想弄清楚如何做我想做的事。任何想法为什么这不起作用?它不是导轨4的特征吗?

2 个答案:

答案 0 :(得分:2)

你可能会继续阅读。可以使用多种布局方式。如果要为给定操作调用特定布局,则应在控制器中执行此操作,而不是在视图中执行。如果你需要在一个视图中调用,给一个局部的布局,那么语法是不同的,你首先调用partial,然后调用布局。

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

如果您只是希望在特定控制器中呈现2列视图,则在任何方法定义调用之前在控制器顶部,在类名称下

layout "two_column_landing"

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

   def index
     @people = Person.all
     render layout: "multi-column"
   end 

答案 1 :(得分:0)

我使用了这个并且适用于rails 4

def index
    @people = Person.all
    render :layout => "my-layout-name"
end