Rails: ¿Cómo ejecutar `rails generate scaffold` cuando el modelo ya existe?
Soy nuevo en Rails, por lo que mi proyecto actual se encuentra en un estado extraño.
Una de las primeras cosas que generé fue un modelo de "Película". Luego comencé a definirlo con más detalle, agregué algunos métodos, etc.
Ahora me doy cuenta de que debería haberlo generado rails generate scaffold
para conectar cosas como el enrutamiento, las vistas, el controlador, etc.
Intenté generar el scaffolding pero recibí un error que decía que ya existe un archivo de migración con el mismo nombre.
¿Cuál es la mejor manera de crear estructuras para mi "Película" ahora? (usando rieles 3)
TL;DR :rails g scaffold_controller <name>
Aunque ya tenga un modelo, aún puede generar el controlador y los archivos de migración necesarios usando la rails generate
opción. Si ejecuta, rails generate -h
podrá ver todas las opciones disponibles.
Rails:
controller
generator
helper
integration_test
mailer
migration
model
observer
performance_test
plugin
resource
scaffold
scaffold_controller
session_migration
stylesheets
Si desea generar un andamio de controlador para su modelo, consulte scaffold_controller
. Sólo para mayor claridad, aquí está la descripción al respecto:
Elimina un controlador andamiado y sus vistas. Pase el nombre del modelo, ya sea CamelCased o under_scored, y una lista de vistas como argumentos. El nombre del controlador se recupera como una versión pluralizada del nombre del modelo.
Para crear un controlador dentro de un módulo, especifique el nombre del modelo como una ruta como 'módulo_padre/nombre_controlador'.
Esto genera una clase de controlador en aplicación/controladores e invoca generadores de ayuda, motor de plantilla y marco de prueba.
Para crear su recurso, usaría el resource
generador, y para crear una migración, también puede ver el migration
generador (vea, hay un patrón en toda esta locura). Estos proporcionan opciones para crear los archivos que faltan para crear un recurso. Alternativamente, puedes simplemente ejecutar rails generate scaffold
con la --skip
opción de omitir cualquier archivo que exista :)
Recomiendo dedicar algo de tiempo a mirar las opciones dentro de los generadores. Son algo que no creo que estén muy bien documentados en libros y cosas así, pero son muy útiles.
Gran respuesta de Lee Jarvis
, este es solo el comando, por ejemplo; ya tenemos un modelo existente llamado Usuario:
rails g scaffold_controller User
Para aquellos que inician una aplicación Rails con una base de datos existente, hay una joya interesante llamada schema_to_scaffold
para generar un script de andamio. produce:
rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string
de tu schema.rb
nuestro renombrado schema.rb.
Compruébalo
Este comando debería funcionar:
$ rails g scaffold movie --skip