2012-04-09 23 views
54

Según la convención Ruby on Rails, los nombres de los controladores se pluralizan mientras los nombres de modelo son singulares. Ejemplo: un controlador de usuarios, pero un modelo de usuario.Ruby on Rails convención plural (controlador) y singular (modelo) - explicación

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

archivo de migración Ahora abierta

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

Aquí nombre de la tabla es plural (usuarios).

Entonces mi pregunta es: ¿Por qué el nombre de la tabla es plural (usuarios) aunque el nombre del modelo es singular (Usuario)?

Respuesta

47

Ruby on Rails seguir convención lingüística. Eso significa que un modelo representa un solo usuario, , mientras que una tabla de base de datos se compone de muchos usuarios.

+3

¿Cuál es la historia de las pluralizaciones no estándar? Por ejemplo, si mi modelo fuera "Actividad", ¿la mesa terminaría siendo "Actividades" o "Actividades"? – sak

+6

Sería "Actividades" el método de carriles auxiliares "pluralizar" es muy inteligente. Sabe que el plural de "persona" es "personas", y así sucesivamente. http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method--pluralize –

+2

¿La convención de pluralización del modelo de Rails supone que los modelos están escritos en inglés? – duhaime

0

Porque la tabla mantiene a los usuarios. Es solo la convención.

12

Una instancia de su modelo User representa un solo usuario, por lo que es singular. La tabla users, por el contrario, mantiene a todos sus usuarios, por lo que es plural.

3

Para completar la respuesta de Emily

una instancia de su modelo de usuario representa un único usuario, por lo que es singular. La tabla de usuarios, por el contrario, contiene a todos sus usuarios, por lo que es plural.

Compruebe esto link sobre Rails naming convention.

1

en rieles conntroller y el nombre de la tabla son solo modelo plural es singular.En un nombre de dos palabras, la segunda palabra está en plural!

Cuestiones relacionadas