Rails: ¿Cómo ejecutar `rails generate scaffold` cuando el modelo ya existe?

Resuelto Lan asked hace 14 años • 7 respuestas

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 scaffoldpara 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)

Lan avatar Dec 02 '10 16:12 Lan
Aceptado

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 generateopción. Si ejecuta, rails generate -hpodrá 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 resourcegenerador, y para crear una migración, también puede ver el migrationgenerador (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 scaffoldcon la --skipopció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.

Lee Jarvis avatar Dec 02 '2010 09:12 Lee Jarvis

Gran respuesta de Lee Jarvis, este es solo el comando, por ejemplo; ya tenemos un modelo existente llamado Usuario:

rails g scaffold_controller User
tokhi avatar Nov 02 '2014 19:11 tokhi

Para aquellos que inician una aplicación Rails con una base de datos existente, hay una joya interesante llamada schema_to_scaffoldpara generar un script de andamio. produce:

rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string

de tu schema.rbnuestro renombrado schema.rb. Compruébalo

frenesim avatar Dec 06 '2012 17:12 frenesim

Este comando debería funcionar:

$ rails g scaffold movie --skip
Andrew Hendrie avatar Feb 10 '2016 08:02 Andrew Hendrie