📅  最后修改于: 2021-01-12 02:48:44             🧑  作者: Mango
在Rails中,布局是可以组合在一起(例如页眉,页脚,菜单等)以构成完整视图的块。一个应用程序可以根据需要具有任意多个布局。 Rails使用约定优于配置,以自动将布局与具有相同名称的各个控制器配对。
Rails布局基本上可以根据“不要重复自己”原理(DRY)工作。
在Rails中,默认情况下启用布局。每当您生成新的Rails应用程序时,都会在app / views / layouts中自动为您生成一个布局。
首先,我们需要定义一个布局模板,然后为控制器定义知道该布局存在的路径。
从控制器的角度来看,有三种创建HTTP响应的方法:
Rails中的yield语句决定将布局的内容呈现在何处。如果布局中没有yield语句,则将呈现布局文件本身,但动作模板中的其他内容将无法正确放置在布局中。
因此,需要在布局文件中添加yield语句。
<%= yield %>
在应用程序中发出请求时,将发生以下过程:
Rails在app / layouts目录中搜索与控制器名称相同名称的布局。
例如,如果您有一个名为GioController的控制器,则rails将搜索layouts / gio.html.erb布局。如果不存在具有相同名称的布局,则它将使用默认布局app / views / layouts / appplication.html.erb
前面我们做了一个示例,其输出如下:
现在在此应用程序中,我们将插入一个布局文件。
步骤1转到app / layouts / application.html.erb文件,删除所有代码并编写以下代码。
Login
<%= yield %>
步骤2转到app / layouts目录并创建lay.html.erb文件。
Layout Example
Layout Example
<%= yield %>
www.javatpoint.com
步骤3通过编写以下代码将其插入app / controllers / users_controller.rb文件。
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy]
layout "lay"
def index
code....
步骤4在浏览器上运行它。