带控制器条件的 Rails 布局渲染

发布于 2024-08-27 19:28:40 字数 203 浏览 7 评论 0原文

我不知道最好的方法是什么。

在我的 application.html.erb 上,我定义了一个 header div。

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

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

I don't know what's the best way to doing this.

On my application.html.erb I define a header div.

My default controller ( root ) is a homepage controller.
And I wish that if I'm at index of the homepage the header is rendering with some content, but all other controllers render another content inside that header.

How can I make a condition in that header div to render different content based on the controller that's being rendered?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮年 2024-09-03 19:28:40

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

application.html.erb

<div id="header">
  <%= yield :header %>
</div>

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

<% content_for :header do %>
  This is a controller-specific header.
<% end %>

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

You can use the content_for helper to define a block of markup in individual view templates that's yielded to from the application layout.

application.html.erb:

<div id="header">
  <%= yield :header %>
</div>

Then include code like this anywhere within a controller's view template:

<% content_for :header do %>
  This is a controller-specific header.
<% end %>

Note that you can define as many of these blocks as you like, so you could have a conditional sidebar etc. as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文