Rails布局使用控制器条件进行渲染

Vic*_*ins 3 ruby-on-rails render conditional-statements

我不知道这样做的最佳方法是什么.

在我的application.html.erb上我定义了一个标题div.

我的默认控制器(root)是主页控制器.我希望如果我在主页的索引处标题是使用某些内容呈现的,但所有其他控制器都会在该标题内呈现另一个内容.

如何在该标题div中创建一个条件,以根据正在呈现的控制器呈现不同的内容?

Joh*_*ley 6

您可以使用content_for帮助程序在从应用程序布局中生成的各个视图模板中定义标记块.

application.html.erb:

<div id="header">
  <%= yield :header %>
</div>
Run Code Online (Sandbox Code Playgroud)

然后在控制器的视图模板中的任何位置包含这样的代码:

<% content_for :header do %>
  This is a controller-specific header.
<% end %>
Run Code Online (Sandbox Code Playgroud)

请注意,您可以根据需要定义任意数量的这些块,因此您也可以使用条件侧边栏等.