[技术博客] 软工-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只能使用本地图片 背景介绍 目标:利用 ...
随机推荐
- 【第二篇】- Git 安装配置之Spring Cloud直播商城 b2b2c电子商务技术总结
Git 安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://g ...
- C++ windows 函数讲解(二)鼠标坐标
获得鼠标坐标: #include<bits/stdc++.h> #include<windows.h> using namespace std; int main() { PO ...
- 使用Java操作Excel表格
目录 一.配置第三方库 二.使用Apache POI API 1. 打开Excel文件 2. 选择对应的sheet 3. Sheet接口的基本使用 3.1 获取开头行和结束行 3.2 获取Row对象 ...
- 使用ELK监控Nginx日志实现接口流量访问统计
前段时间自己看书学习了一下elasticSearch,后面自己实践了使用elasticSearch.logStash.kibana搭建一个网站接口流量访问统计的监控看板.在这里做一些记录学习. 先看一 ...
- Docker系列(4)- run的流程和docker原理
回顾HelloWorld流程 底层工作原理 Docker是怎么工作的? Docker是一个Client-Server结构的系统,Docker的守护进程运行在宿主机上.通过Socket从客户端访问 Do ...
- LeetCode2-链表两数和
目录 LeetCode2-链表两数和 题目描述 示例提示 经验教训 参考正解 题目描述 示例提示 经验教训 链表题的判空条件不是万能的,有时候示例会极其复杂,根本难以通过判空来区分不同情况. /** ...
- 手把手教你 Docker搭建nacos单机版
Docker搭建nacos单机版步骤 一.使用 docker pull nacos/nacos-server 拉取nacos镜像 我这里没有指定版本所以是拉取latest,你也可以使用 docker ...
- nginx 常用教程网址
nginx rewrite比较齐全的教程 http://www.bubuko.com/infodetail-1810501.html
- iMAC_使用相关
MAC软件下载 https://www.macwk.com/ 这是网站是一个下载免费软件的网站,下载通过<天翼云盘>下载,这个天翼云盘下载的快 好用的软件推荐 腾讯柠檬(Tencent L ...
- 鸿蒙内核源码分析(并发并行篇) | 听过无数遍的两个概念 | 百篇博客分析OpenHarmony源码 | v25.01
百篇博客系列篇.本篇为: v25.xx 鸿蒙内核源码分析(并发并行篇) | 听过无数遍的两个概念 | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度 ...