使特定的 Rails 视图使用某种布局
Posted
技术标签:
【中文标题】使特定的 Rails 视图使用某种布局【英文标题】:Make specific Rails view use a certain layout 【发布时间】:2012-06-26 02:15:08 【问题描述】:有没有办法让某个 Rails 视图(例如index.html.haml
)使用某个模板?这是在控制器中完成的,如下所示:
layout 'my_layout'
是否可以直接在视图中要求布局?谢谢。
【问题讨论】:
This question addresses your needs 这似乎也是从控制器设置布局。 Rails 提供了从控制器设置布局作为标准程序的工具。可能有一些模糊的方法可以从视图中设置它,但为了与 MVC 保持一致,最好由控制器做出这些决定。这就是它的设计方式,我建议不要试图颠覆它。 我正在尝试修改没有控制器的 Devise 视图。 【参考方案1】:根据 Rails 指南,Layouts and Rendering
“当 Rails 将视图呈现为响应时,它通过将视图与当前布局组合来实现”
因此,一旦视图开始呈现,似乎就不可能更改布局。
此外,我建议确定布局更多的是控制器功能。如果您的视图中有试图确定布局的逻辑,我敢打赌最好将逻辑放在控制器中。
【讨论】:
以上是关于使特定的 Rails 视图使用某种布局的主要内容,如果未能解决你的问题,请参考以下文章