web-dev-qa-db-fra.com

Ruby on Rails convention plurielle (contrôleur) et singulière (modèle) - explication)

Selon Ruby on Rails convention, les noms de contrôleur sont pluralisés tandis que les noms de modèle sont singuliers. Exemple: un contrôleur Utilisateurs, mais un modèle Utilisateur.

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

Maintenant, ouvrez le fichier de migration

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

Ici, le nom de la table est pluriel (utilisateurs).

Donc ma question est - Pourquoi le nom de la table est pluriel (utilisateurs) même si le nom du modèle est singulier (Utilisateur)?

61
user1322512

Ruby on Rails follow convention linguistique. Cela signifie qu'un modèle représente un seul utilisateur, tandis qu'une table de base de données se compose de nombreux utilisateurs.

53
AMIC MING

Une instance de votre modèle User représente un seul utilisateur, elle est donc singulière. La table users, en revanche, contient tous vos utilisateurs, elle est donc plurielle.

12
Emily

Pour compléter la réponse d'Emily

Une instance de votre modèle utilisateur représente un seul utilisateur, elle est donc singulière. Le tableau des utilisateurs, en revanche, contient tous vos utilisateurs, il est donc pluriel.

4
Justin D.

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

1

Parce que la table contient des utilisateurs. C'est juste la convention.

0