【问题标题】:Rails 4 How to use render layout option in view?Rails 4 如何在视图中使用渲染布局选项?
【发布时间】:2013-10-09 16:17:08
【问题描述】:

只是弄乱了 Rails 布局。通过guide 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 的特性吗?

【问题讨论】:

  • 你把那个文件'two_column_landing.html.erb'放在app/views/layouts/文件夹里了吗?

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


【解决方案1】:

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

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

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

layout "two_column_landing"

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

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

【讨论】:

    【解决方案2】:

    我使用它并且在 rails 4 上运行良好

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 2013-11-19
      • 2011-11-14
      • 1970-01-01
      • 2016-11-12
      • 2013-09-08
      • 2018-10-21
      相关资源
      最近更新 更多