El uso de Rails de estrictas convenciones de nomenclatura significa que gran parte del código del núcleo DEBERÍA tener el mismo formato sea quien sea el que lo escriba? Podría ser escrito por un amigo, un colega o un ordenador… no debería importar porque las mismas reglas de Rails se aplican a todos.
Esto significa que Rails puede realmente hacer algunas tareas por ti! Puede realmente construir cosas y escribir código en tu nombre…
Al venir de otro lenguaje como PHP, esto puede parecer magia.
Referencia rápida:
rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references
##Rails generatorEl comando rails generate utiliza plantillas diseñadas por convención para crear un montón de cosas útiles. Ejecutar rails generate por sí mismo da una lista de generadores disponibles:
rails generate
o para los super-hackers:
rails g
Hay un montón de generadores:
Rails:
- activos
- controlador
- generador
- ayudante
- prueba de integración
- mailer
- migración
- modelo
- observador
- prueba_de_rendimiento
- recurso
- cajón
- controlador_de_cajón
- migración_de_sesión
- tarea
Café:
- coffee:assets
Jquery:
- jquery:install
Js:
- js:assets
#Scaffolding en Rails
La herramienta de scaffolding de Rails es una forma rápida de generar algunas de las principales piezas de código de una aplicación. Esto ahorra mucho tiempo cuando se quiere poner en marcha rápidamente. (¡Es super guay!)
Dependiendo de lo que quieras crear, el andamiaje puede autogenerar todo o una combinación de:
migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript
Puede haber algunos archivos más que hace… No estoy seguro de que sea una lista completa!
#Scaffolding un recurso completo
Estás andando cosas asociadas a un objeto (singular)
Si quieres andamiar una aplicación, necesitas andamiar cada recurso dentro de esa aplicación. Si quieres hacer una aplicación de blogging, por ejemplo – podrías andamiar todo el recurso Post:
rails g scaffold Post
El nombre del recurso Post
tiene que ser:
- UpperCamelCase
- SINGULAR
Este nombre va a ser el nombre del modelo, por ejemplo Post. También va a ser el nombre de la clase del controlador (pero pluralizado), por ejemplo PostsController Y el nombre de la tabla (pero pluralizado) por ejemplo posts
Después del nombre de la clase, puedes añadir las columnas de la tabla y sus tipos de datos.
rails g scaffold Post name:string title:string content:text
Los nombres de las columnas de la tabla deberían ser:
- lower_snake_case
- SINGULAR
Esto se debe a que cada elemento de Post debe tener un valor almacenado en cada columna.
Si ejecutamos este scaffold, se crearán todos estos archivos:
Dentro del PostController, se crearán todos los métodos RESTful y todos ellos tendrán sus correspondientes archivos de vista.
Después de crear el fichero de migración, para hacer el cambio en la base de datos recuerda ejecutar:
rake db:migrate
##Generar sólo un controlador
Controla muchos objetos (por eso es plural)
A veces, quieres generar sólo un controlador.
rails g controller Comments
El nombre del controlador tiene que ser:
- UpperCamelCase
- PLURALIZADO
Esto se debe a que un controlador maneja muchos ejemplos de un objeto, por lo que debe ser plural.
Esto hará estos archivos:
Esto NO creará un archivo de migración o un archivo de modelo.
#Generar sólo un modelo
Estás generando el contorno de un objeto (singular)
Si sólo quieres crear un modelo, puedes hacer:
rails g model Comment
- UpperCamelCase
- SINGULAR
También puedes añadir los nombres de las columnas a esto si quieres:
rails g model Comment commenter:string body:text article:references
Los nombres de las columnas de la tabla deben ser:
- MayorCamelCase
- SINGULAR
La generación de un modelo creará estos archivos: