Rails 手册 | 04 - 深入 Rails 应用

100 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 23 天,点击查看活动详情

三、Rails 应用的命令约定

在编写一般的 Ruby 代码时,如果需要应用另一个文件中的类或者模块,通常都需要使用 require 或者 include 之类的方法。而在 Rails 中,虽然控制器、模型或者应用的插件都位于不同的文件夹中,但是 Rails 却能正常运行,并且能将各个模块组合使用,这其中的奥秘就在于 Rails 的命名约定, Rails 直到文件名和类名之间的关系,当在程序中引用一个未知的类名时,Rails 会自动尝试将类名转换为相应位置的文件名进行查找,并自动加载该文件。

Rails 命令约定惯例如下:

图片.png

Rails 的命名约定与 Ruby 时一脉相承的,同时单复数的区别本质上是与英语的语言表述保持一致,这样编写出来的代码更具有可读性,更容易维护。

除此之外,还有一些其他的命名约定,例如在数据库表中的字段名命名为 updated_at 或者 created_at,Rails 会自动在改行数据修改该和创建时在相应的字段中写入当时的时间。

在开发 Rails 时,只需要按照给定的预定惯例进行开发,许多事情都会变得非常简单,工作量也会减少很多。

四、Rails 应用的 生产/开发/测试 模式

Rails 被设计成可以有3种不同的运行模式,既 开发模式(development),测试模式(test)和生产模式(production),这三种模式中,Rails 的表现具有较大的差异。

在开发模式中 Rails 会记录更为详细的日志信息,而且能够在处理每个请求时自动加载修改过的代码,即使反映修改的结果,同时在出现错误的时候显示详尽的错误信息,而在测试模式中,Rails 会提供一个较为封闭的运行环境,能够保证每个测试都在相同的环境夏之星。

在生成模式中,Rails 提供的是一个最为稳定和高效的运行环境,Rails 会自动缓存模型对象,避免重复加载文件模型,提高运行速递,并且 Rails 还会因为安全方面的因素屏蔽出错时的提示信息。

Rails 在不同的运行模式中切换时不需要对程序的代码进行任何修改该的,在运行时 Rails 程序只需要在 rails server 后面添加 -e 参数并且指定程序需要运行的环境即可,例如

rails server -e development

或者

rails server -e test