Ruby on Rails复数(控制器)和单数(模型)约定 – 解释

按照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 

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

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

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

您的User模型的一个实例代表一个用户,所以是单数的。 users表,相反,拥有所有的用户,所以它是复数。

完成艾米丽的回答

您的用户模型的一个实例代表一个用户,所以是单数的。 用户表,相反,拥有所有的用户,所以它是复数。

检查这个关于Rails命名约定的链接 。

在rails conntroller和表名都是复数模式单独。在一个两字名第二个字是复数!

因为该表拥有用户。 它只是公约。