【问题标题】:Different application layout for my rails application我的 rails 应用程序的不同应用程序布局
【发布时间】:2017-07-16 16:46:36
【问题描述】:
我有一个有自己风格的主页(输入application.css),但网站的其余部分将完全不同。
然而,Rails 似乎可以使用“父”文件application.html.erb,我们基本上可以使用yield 来包含其他.html.erb 页面。
但是,这对我的应用程序不可行,因为正如我所说,主页的结构与我的网络应用程序的其余部分完全不同,我不能使用通用的 application.html.erb 文件。
这种情况有什么解决办法?
【问题讨论】:
标签:
html
css
ruby-on-rails
ruby
【解决方案1】:
您可以指定布局控制器范围或特定操作。
布局文件需要在layouts文件夹中。
要在控制器范围内指定布局文件,您可以这样做
class BlogController < ActionController::Base
layout "unique_blog_layout"
def index
end
...
end
为单个视图设置它
class BlogController < ActionController::Base
def index
render layout: "unique_blog_layout"
end
...
end
如需完整的检查,请查看文档 here 和 here。
【解决方案2】:
要为单个模板使用不同的布局,请执行以下操作:
- 将您的新布局添加到
views/layouts/name_of_my_new_layout.html.erb
- 在控制器中使用
render :index, layout: :name_of_my_new_layout 告诉Rails 使用您的新布局来呈现模板