[技术博客] 软工-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如何修改现有数据库状态。因此,删除或修改以前的迁移可能会使数据库出错,因此笔者强烈不建议这样做。

最新文章

  1. Java基础和JDK5.0新特性
  2. mysql5.7.12直接解压zip包,安装过程
  3. HTML中的边框属性
  4. 【Android 界面效果35】管理Fragments
  5. C# 调试程序弹出 没有可用于当前位置的源代码 对话框
  6. 【 UVALive - 4287】Proving Equivalences (SCC缩点)
  7. 一些技术blog和安全blog
  8. apache的keepalive和keepalivetimeout
  9. 蜗牛爱课- iOS中定时器NSTimer使用
  10. Codeforces Round #261 (Div. 2)——Pashmak and Buses
  11. Java中的throw和throws的差别
  12. 微信公众号开发C#系列-7、消息管理-接收事件推送
  13. JavaDBF:保存行情实时数据到DBF文件
  14. 【MyEclipse】JSP默认打开方式 设置(双击)
  15. canvas-star3
  16. jmeter在返回的json串中提取需要的值
  17. java过滤防止sql注入过滤
  18. LINQ to Entities 比较日期
  19. OpenStack云计算(一)——OpenStack 网络
  20. Oracle数据库日期格式转换操作

热门文章

  1. Vs code添加自定义snippet
  2. 浅谈KMP模式匹配算法
  3. Cobar源码分析之AST
  4. HTML+CSS登录界面,有数据库的登录验证
  5. php去除html标签
  6. EcShop首页显示特定分类的精品新品热销特价等推荐商品
  7. Java基础系列(18)- if选择结构
  8. vue中data为什么不写成data:{}这样而是写成data(){return {}}类型。
  9. 给你一个app,怎么测试
  10. 使用Jmeter执行接口自动化测试-如何初始化清空旧数据