Rails布局实例图解

本文概述

  • 建立回应
  • Rails布局和模板之间的关系
在Rails中, 布局是可以组合在一起(例如页眉, 页脚, 菜单等)以构成完整视图的块。一个应用程序可以具有所需的任意多个布局。 Rails使用约定优于配置来自动将布局与具有相同名称的各个控制器配对。
Rails布局基本上在” 不要重复自己” 原理(DRY)下工作。
在Rails中, 默认情况下启用布局。每当你生成新的Rails应用程序时, 都会在app / views / layouts中自动为你生成一个布局。
首先, 我们需要定义一个布局模板, 然后为控制器定义知道该布局存在的路径。
建立回应 从控制器的角度来看, 有三种创建HTTP响应的方法:
  • 调用渲染以创建完整响应以发送回浏览器
  • 调用redirect_to向浏览器发送HTTP重定向状态代码
  • 呼叫头以创建响应并返回到浏览器
收益声明的重要性
Rails中的yield语句决定将布局的内容呈现在何处。如果布局中没有yield语句, 则将呈现布局文件本身, 但动作模板中的其他内容将无法正确放置在布局中。
因此, 需要在布局文件中添加yield语句。
< %= yield %>

Rails布局和模板之间的关系 【Rails布局实例图解】在应用程序中发出请求时, 将发生以下过??程:
  • 首先, Rails在控制器动作中找到用于相应动作的模板以呈现方法。
  • 然后找到要使用的正确布局。
  • 它使用动作模板来生成特定于该动作的内容。
  • 最后, 它查找布局的yield语句, 并在此处插入操作的模板。
寻找正确的布局
Rails在app / layouts目录中搜索与控制器名称相同名称的布局。
例如, 如果你有一个名为GioController的控制器, 则导轨将搜索layouts / gio.html.erb布局。它不存在具有相同名称的布局, 则它将使用默认布局app / views / layouts / appplication.html.erb
例:
前面我们做了一个示例, 其输出如下:
Rails布局实例图解

文章图片
步骤2转到app / layouts目录并创建lay.html.erb文件。
< !DOCTYPE html> < html> < head> < title> Layout Example< /title> < /head> < body> < h1> Layout Example< /h1> < %= yield %> < p> www.srcmini.com< /p> < /body> < /html>

步骤3通过编写以下代码将其插入app / controllers / users_controller.rb文件。
class UsersController < ApplicationController before_action :set_user, only: [:show, :edit, :update, :destroy] layout "lay" def index code....

步骤4在浏览器上运行它。
Rails布局实例图解

文章图片
下载
下载此示例

    推荐阅读