【发布时间】:2025-12-14 04:55:01
【问题描述】:
也许它有技术/实施原因,但在我看来,“布局”几乎是视图层的一部分,但 Rails 似乎只允许在控制器级别指定布局。
我的控制器不应该关心布局......模板应该。有没有办法从 .erb 文件中指定要使用的布局?
类似:
<%= with_layout :news_feed do %>
<p>
My markup in here.
</p>
<% end %>
或您能想到的任何其他实现...但文档似乎仅从控制器的角度引用布局。
也许实现 with_layout 助手不会太难。
编辑 |我找到了我正在寻找的东西:
<% render :layout => "some_layout" do %>
<p>
My markup here
</p>
<% end %>
现在假设您的 ActionController 具有:
class ApplicationController < ActionController::Base
layout nil
然后每个模板可以使用这种方法选择自己的布局。
如果您在 app/layouts 中放置一个布局,其名称与控制器匹配,则将使用该布局,因此您不必严格指定它们是否都相同。无论哪种方式,编写模板的家伙现在都可以完全控制它,而不是编写控制器的家伙:)
【问题讨论】:
标签: ruby-on-rails layout