在这次软件编写中,我们的后端使用了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 如何修改现有数据库状态。因此,删除或修改以前的迁移可能会使数据库出错,因此笔者强烈不建议这样做。
|
请发表评论