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和表名都是复数模式单独。在一个两字名第二个字是复数!
因为该表拥有用户。 它只是公约。