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

      有一些语句不是对象,如块,方法和条件语句(即: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如何修改现有数据库状态。因此,删除或修改以前的迁移可能会使数据库出错,因此笔者强烈不建议这样做。

  • 相关阅读:
    JVM运行参数
    JVM学习
    自己瞎写的小项目随笔
    git入门
    @ResponseBody 注释
    jquery 正则表达式 验证邮箱 手机号 座机号 身份证
    ORACLE计算一年的12个月份
    css 图片 文字居中
    Jquery 取值相关
    标题栏下拉菜单
  • 原文地址:https://www.cnblogs.com/kidogucb/p/12969314.html
Copyright © 2020-2023  润新知