Rails 命名约定与 Active Record 详解
1. Rails 命名约定
Rails 新手有时会对其自动处理命名的方式感到困惑。例如,当定义一个名为 Person
的模型类时,Rails 会自动去查找名为 people
的数据库表。下面详细介绍这些隐式命名规则。
1.1 大小写、下划线和复数规则
在 Ruby 中,变量名通常采用全小写字母,单词之间用下划线分隔,例如 order_status
。而类和模块的命名则不同,没有下划线,短语中的每个单词(包括第一个)都大写,如 LineItem
,这种方式称为混合大小写。
Rails 在此基础上进行了扩展:
- 数据库表名和变量名类似,使用小写字母,单词间用下划线分隔,并且表名总是复数形式,如 orders
和 third_parties
。
- 文件命名采用小写字母和下划线。
例如,定义一个处理行项目的模型类 LineItem
,Rails 会自动推断:
- 对应的数据库表名为 line_items
,即将类名转换为小写,单词间添加下划线并变为复数。
- 类定义会在 app/models/line_item.rb
文件中。
1.2 控制器命名约定
如果应用程序有一个商店控制器,会遵循以下规则:
- 类名为 S