本文概述
- 建立回应
- 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
例:
前面我们做了一个示例, 其输出如下:
文章图片
步骤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在浏览器上运行它。
文章图片
下载
下载此示例
推荐阅读
- Ruby on Rails路由介绍和用法
- Ruby on Rails迁移用法详解
- Rails多种过滤器用法实例
- Ruby on Rails CRUD操作图解
- Rails文件上传实例详细图解
- Rails 3种缓存用法和实例
- Ruby on Rails 5 Hello World示例
- Rails脚本工具使用介绍
- Ruby on Rails RVM版本管理用法