62

根据 Ruby on Rails 约定,控制器名称是复数形式,而模型名称是单数形式。示例:一个用户控制器,但一个用户模型。

rails generate controller Users
rails generate model User name:string email:string

现在打开迁移文件

 class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.string :email    
      t.timestamps
    end
  end
end

这里的表名是复数(用户)。

所以我的问题是 - 为什么表名是复数(用户),即使模型名称是单数(用户)?

4

5 回答 5

56

Ruby on Rails 遵循语言约定。这意味着一个模型代表一个用户,而一个数据库表由许多用户组成。

于 2012-04-09T18:57:07.887 回答
13

你的模型的一个实例User代表一个单一的用户,所以是单一的。users相比之下,该表包含所有用户,因此它是复数形式。

于 2012-04-09T18:52:50.370 回答
4

完成艾米丽的回答

您的 User 模型的实例代表单个用户,因此是单数的。相比之下,用户表包含所有用户,因此它是复数形式。

于 2012-04-09T18:57:24.443 回答
1

在 rails 控制器和表名称是复数模型单独是单数。在两个单词名称中第二个单词是复数!

于 2014-07-01T07:41:06.193 回答
0

因为该表包含用户。它只是公约。

于 2012-04-09T18:51:42.900 回答