[技术博客] 软工-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

    有一些语句不是对象,如块,方法和条件语句(即:ifelse)。

  • 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 后端开发总结分享的更多相关文章

  1. [技术博客] 软工-Ruby on Rails前端工具链的配置以及对Web应用结构设计的一点思考

    一.相关工具链简介 HAML HAML是专门面向Ruby on Rails模版语法设计的一门标记语言,其结合RoR的views部分模版语法的特点,对原来的*.html.erb(嵌入Ruby代码的HTM ...

  2. [技术博客] win10下vagrant+centos7 rails虚拟开发机配置流程

    由于少昂早年已经在此踩过坑了,因此在这里,我们现在直接贴上他早年的博客链接:https://www.cnblogs.com/HansBug/p/7403306.html

  3. 【技术博客】基于vue的前端快速开发(工具篇)

    一.Vue教程 vue.js是一套构建用户界面的渐进式框架.vue采用自底向上增量开发的设计.vue的核心库只关心视图层,非常容易学习,非常容易与其它库和已有项目整合.vue完全有能力驱动采用单文件组 ...

  4. [技术博客] 敏捷软工——JavaScript踩坑记

    [技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是Java ...

  5. [福大软工] Z班——个人技术博客评分

    个人技术博客 作业地址 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1070 作业要求 个人技术博客单次作业 ...

  6. 【软工】[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE

    [技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE 官方文档与重要参考资料 官方demo 官方API调用样例 Playground 官方API Doc,但其搜索框不支持模 ...

  7. 个人作业——软件工程实践总结&个人技术博客

    一. 回望 (1)对比开篇博客你对课程目标和期待,"希望通过实践锻炼,增强软件工程专业的能力和就业竞争力",对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪 ...

  8. [技术博客]大闸蟹的技术博客,通过gitlab api进行用户批量创建

    技术博客--通过gitlab api批量注册用户 gitlab登录界面本身提供了register功能,但需要手工一个个添加,对于一次性会添加整个班级的学生的软工平台来说并不科学合理.使用gitlab ...

  9. [技术博客]海报图片生成——小程序canvas画布

    目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用 ...

随机推荐

  1. Intel® QAT加速卡之同步异步模式

    QAT 的两种操作模式 Intel QAT API同时支持同步和异步两种操作模式. 为了获得最佳性能,该应用程序应能够向加速引擎提交多个未完成的请求. 提交多个未完成的请求可最大程度地减少加速引擎上的 ...

  2. uni-app 登录Abp VNexe并获取Token

    uni.request方式登录abp关键代码如下,因abp获取token需要用formdata方式请求所以需要加上请求头 const baseUrl = 'http://127.0.0.1:44323 ...

  3. VUE006. 前端跨域代理服务器ProxyTable概述与配置

    概述 使用  vue-cli  工具生成一个  vue  项目: vue init webpack my-project-vue 在生成的项目结构里,会有一个  index.js  文件.在这个文件里 ...

  4. leetcode数组典型题目小结

    数组与矩阵 数组与矩阵的基本知识: 1.数组:数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式. 首先,数组会利用索引来记录每个元素在数组中的位置,且在大多数 ...

  5. 本地jvisualvm通过jstatd远程监控GC

    1.查找jdk路径 [root@xxx ~]# which java /data/soft/jdk1.8.0_221/bin/java 2.进入jdk的bin目录下添加指定安全策略文件,注意jdk路径 ...

  6. go新建一个工程

    使用go mod 可以在任何地方新建工程 工程目录 main.go   //引用子包必须格式"工程目录/子包" go.mod 子包 编译工程: go build

  7. [转]SpringBoot系列——花里胡哨的banner.txt

    Creating ASCII Text Banners from the Linux Command Line In Ubuntu, Debian, Linux Mint etc. $ sudo ap ...

  8. 【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token

    问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求 ...

  9. XSS注入

    XSS 原理: 程序对输入和输出没有做合适的处理,导致"精心构造"的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害. 分类 : 危害:存储型 > 反射型 > ...

  10. CS:APP Chapter 3 程序的机器级表示-读书笔记

    3.1 程序的机器级表示 发展历史 Intel,AMD,ARM 等企业各有又是,CPU 从 8 位发展到 16 位,再到 32 位,近几年发展到 64 位,当下的 CPU 体系被称为 x86-64 体 ...