Home » Ruby » Ruby on Rails plural (controller) and singular (model) convention – explanation

Ruby on Rails plural (controller) and singular (model) convention – explanation

Posted by: admin November 30, 2017 Leave a comment

Questions:

As per Ruby on Rails convention, controller names get pluralized while model names are singular. Example : a Users controller, but a User model.

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

Now open migration file

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

Here table name is plural (users).

So my question is – Why table name is plural (users) even though the model name is singular (User)?

Answers:

Ruby on Rails follow linguistic convention. That means a model represents a single user,
whereas a database table consists of many users.

Questions:
Answers:

An instance of your User model represents a single user, so is singular. The users table, by contrast, holds all of your users, so it’s plural.

Questions:
Answers:

To complete Emily’s answer

An instance of your User model represents a single user, so is singular. The users table, by contrast, holds all of your users, so it’s plural.

Check this link about Rails naming convention.

Questions:
Answers:

in rails conntroller and table name are plural model alone is singular.In a two word name second word is pluralized !

Questions:
Answers:

Because the table holds users. Its just the convention.