[技术博客] 软工-Ruby on Rails 后端开发总结分享
[技术博客] 软工-Ruby on Rails 后端开发总结分享
在这次软件编写中,我们的后端使用了Ruby on Rails (RoR)框架。
Rails框架是用Ruby编写的。这意味着当我们为Ruby on Rails编写代码时,我们正在使用Ruby。在这个技术博客中,笔者将分享一些自己对Rails的理解。
理解rails作业流程:以如何引导完成请求/响应周期以访问博客应用程序中的文章列表为例
用户单击一个按钮,然后对URL进行GET请求
/articles。Web服务器收到此请求。然后,Rails#index基于中的URL /控制器映射执行相应的控制器操作routes.rb。控制器调用
Article.all通过Article模型从数据库加载文章的集合。该集合被分配给一个实例变量。视图将呈现给发出请求的用户,该用户将内插实例变量值以显示文章列表。
在Ruby中,一切皆对象
在面向对象的编程中,对象是类的实例。在Ruby中,所有类都是class的实例
Class。例如:
class => Fixnum
class.class => class
有一些语句不是对象,如块,方法和条件语句(即:
if,else)。Ruby是动态类型的语言
Ruby是动态类型的。程序员可以即时更改变量类型。
在Ruby中,以下代码行顺序地地运行,不会引发错误。
x = 1
x = "foo"
Ruby中的getter和setter方法的信息
一个getter允许访问一个实例变量。设置器允许设置实例变量。
我们可以手动定义getter和setter方法:
class Car
def color
@color
end
def color=(color)
@color = color
end
end
c = Car.new
c.color = 'red'
puts c.color # => red
但是Ruby提供了三种访问器方法,它们执行相同的操作并且更简洁:
attr_reader(getter),attr_writer(setter)和attr_accessor(setter和getter)。class Car
attr_accessor :color
end
c = Car.new
c.color = 'blue'
puts c.color #=> blue
如何列出应用程序中的所有路由
$rake routes
我们也可以添加| grep `,来过滤返回的路由。
这一方法在实际工程中可以用来进行debug等操作
什么是Gemfile
在Gemfile中,我们为Ruby应用程序指定了依赖项。它位于项目的根目录中。Gemfile.lock包含已安装gems的确切版本的记录。这样,如果另一台计算机clone该项目,则可以安装相同的版本。相反,在Gemfile中指定一个gem而不固定到特定版本只会安装gem的最新版本。
在我们的实践中,遇到环境配置出错的情况,有时是Gemfile.lock出错导致的
有哪些Rails设计模式
Rails中有许多设计模式,包括服务对象,值对象,表单对象,查询对象,视图对象,策略对象和装饰器。
Rails如何管理数据库状态
程序员可以手动生成并向迁移(migrate)文件添加说明。
这些指示
ActiveRecord如何修改现有数据库状态。因此,删除或修改以前的迁移可能会使数据库出错,因此笔者强烈不建议这样做。
[技术博客] 软工-Ruby on Rails 后端开发总结分享的更多相关文章
- [技术博客] 软工-Ruby on Rails前端工具链的配置以及对Web应用结构设计的一点思考
一.相关工具链简介 HAML HAML是专门面向Ruby on Rails模版语法设计的一门标记语言,其结合RoR的views部分模版语法的特点,对原来的*.html.erb(嵌入Ruby代码的HTM ...
- [技术博客] win10下vagrant+centos7 rails虚拟开发机配置流程
由于少昂早年已经在此踩过坑了,因此在这里,我们现在直接贴上他早年的博客链接:https://www.cnblogs.com/HansBug/p/7403306.html
- 【技术博客】基于vue的前端快速开发(工具篇)
一.Vue教程 vue.js是一套构建用户界面的渐进式框架.vue采用自底向上增量开发的设计.vue的核心库只关心视图层,非常容易学习,非常容易与其它库和已有项目整合.vue完全有能力驱动采用单文件组 ...
- [技术博客] 敏捷软工——JavaScript踩坑记
[技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是Java ...
- [福大软工] Z班——个人技术博客评分
个人技术博客 作业地址 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1070 作业要求 个人技术博客单次作业 ...
- 【软工】[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE
[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE 官方文档与重要参考资料 官方demo 官方API调用样例 Playground 官方API Doc,但其搜索框不支持模 ...
- 个人作业——软件工程实践总结&个人技术博客
一. 回望 (1)对比开篇博客你对课程目标和期待,"希望通过实践锻炼,增强软件工程专业的能力和就业竞争力",对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪 ...
- [技术博客]大闸蟹的技术博客,通过gitlab api进行用户批量创建
技术博客--通过gitlab api批量注册用户 gitlab登录界面本身提供了register功能,但需要手工一个个添加,对于一次性会添加整个班级的学生的软工平台来说并不科学合理.使用gitlab ...
- [技术博客]海报图片生成——小程序canvas画布
目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用 ...
随机推荐
- C# Dapper基本三层架构使用 (三、BLL)
BLL层介绍 业务逻辑层用于做一些有效性验证的工作,以更好的保证程序运行的健壮性.如完成数据添加.修改和查询业务等:不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证:用户权限的合法性 ...
- CentOS 7操作系统安装
1.关于运维小伙伴可以采用何种方式安装操作系统 下面列举的只是我会用到的安装方式,在运维过程中并不一定是最优解,只是自己运维过程中的一些经验. (1)物理服务器,可以通过连接管理口来安装操作系统,管理 ...
- msf宏钓鱼
kali下载python脚本,生成rtf文件: 下载脚本:git clone https://github.com/bhdresh/CVE-2017-8759.git 生成rtf文件: python ...
- Xshell 为什么会出现中文乱码?
在网上下载xshell并成功安装了,但是当登录服务器查看中文时却出现了乱码的现象呢?这是怎么回事呢?本集小编就同大家详细讲讲. 图1:使用中文命名文档 现象: 登录服务器查看中文却出现乱码 原因分析: ...
- linux 安装配置 jdk1.8
一.查看Linux系统是否有自带的jdk: 1.输入:java -version 2.输入:rpm -qa | grep java 检测jdk的安装包,(注意:rpm命令符没有时记得下载一个输入:ap ...
- PHP ASCII 排序方法
//自定义ascii排序function ASCII($params = array()){ if(!empty($params)){ $p = ksort($params); if($p){ $st ...
- Appium自动化测试时为什么要自己封装find方法
官方的find_element方法不能很好地处理异常,所以自行封装,以智能化处理各种异常
- 华为云计算IE面试笔记-云磁盘和普通磁盘的区别。
1. 定义 云硬盘:一种虚拟块存储服务,主要为ECS和BMS提供块存储空间 普通磁盘:也称本地硬盘,指挂载在计算实例物理机上的本地硬盘 2. 性能 吞吐量具体情况具体分析.(若云磁盘用的SSD本地磁盘 ...
- 鸿蒙内核源码分析(信号生产篇) | 信号安装和发送过程是怎样的? | 百篇博客分析OpenHarmony源码 | v48.03
百篇博客系列篇.本篇为: v48.xx 鸿蒙内核源码分析(信号生产篇) | 年过半百,依然活力十足 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管 ...
- 关于go mod 的使用和goland 配置 go mod
一.关于go modules 1.1 go modules 是go1.11 新加的特性 现在已有go 1.13.4 了本人用了就是最新版的 1.2关于modules 官方定义 模块是相关Go包的集合. ...