ruby on rails - rails - ¿Cómo ejecutar ''rieles generar andamios'' cuando el modelo ya existe?
ruby on rails que es (6)
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". Entonces comencé a definirlo con más detalle, añadí algunos métodos, etc.
Ahora me doy cuenta de que debería haberlo generado con rails generate scaffold
para conectar cosas como el enrutamiento, las vistas, el controlador, etc.
Intenté generar el andamio, pero recibí un error diciendo que ya existe un archivo de migración con el mismo nombre.
¿Cuál es la mejor manera de crear andamios para mi "Película" ahora? (utilizando rieles 3)
En Rails 5 , todavía puedes correr
$rails generate scaffold movie --skip
para crear todos los archivos de andamio faltantes o
rails generate scaffold_controller Movie
para crear el controlador y ver solo.
Para una mejor explicación echa un vistazo a los rieles del andamio
Este comando debe hacer el truco:
$ rails g scaffold movie --skip
Gran respuesta por Lee Jarvis
, este es solo el comando, por ejemplo; Ya tenemos un modelo llamado Usuario:
rails g scaffold_controller User
Para los que inician una aplicación de rieles con una base de datos existente, hay una gema genial llamada schema_to_scaffold
para generar un script de andamio. da salida:
rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string
desde su schema.rb
nuestro renombrado schema.rb.
Revisalo
Puede hacer uso de scaffold_controller
y recuerde pasar los attributes
del modelo, o se generará el andamio sin los atributos.
rails g scaffold_controller User name email
# or
rails g scaffold_controller User name:string email:string
Este comando generará los siguientes archivos:
create app/controllers/users_controller.rb
invoke haml
create app/views/users
create app/views/users/index.html.haml
create app/views/users/edit.html.haml
create app/views/users/show.html.haml
create app/views/users/new.html.haml
create app/views/users/_form.html.haml
invoke test_unit
create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
TL; DR : rails g scaffold_controller <name>
Aunque ya tiene un modelo, aún puede generar el controlador y los archivos de migración necesarios utilizando la opción de rails generate
. Si ejecuta rails generate -h
puede ver todas las opciones disponibles para usted.
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
. Solo por claridad, aquí está la descripción de eso:
Apaga un controlador de andamios 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 ''parent_module / controller_name''.
Esto genera una clase de controlador en la aplicación / controladores e invoca a los generadores de marco de prueba y ayudante, de plantilla y de prueba.
Para crear su recurso, usaría el generador de resource
, y para crear una migración, también puede ver el generador de migration
(vea, hay un patrón en toda esta locura). Estos proporcionan opciones para crear los archivos que faltan para construir un recurso. Alternativamente, puede ejecutar rails generate scaffold
con la opción --skip
para omitir cualquier archivo que exista :)
Recomiendo pasar un tiempo mirando las opciones dentro de los generadores. Son algo que no creo que estén bien documentados en los libros, pero son muy útiles.