tubulares seguridad metalicos fabricacion como armar armado andamios andamio ruby-on-rails model scaffold

ruby-on-rails - metalicos - seguridad armado de andamios



Diferencia entre andamio y modelo en rieles. (4)

Con

$rails generate scaffold <name>

puede generar automáticamente un controlador, modelo y vistas listos para usar con una interfaz web CRUD (Crear, Leer, Actualizar, Eliminar) completa. Es mucho más fácil y rápido que generar modelos, pero es poco probable que el código que genera sea perfecto para su aplicación.

Un scaffold es excelente para usar cuando se trata de ejemplos simples, maquetas rápidas o pruebas.

Si cambia de opinión y decide usar un andamio después de generar el modelo, siempre puede ejecutar

$rails generate scaffold <name>

Se creará todos los archivos que faltan. O si no está contento con el uso de andamios, siempre puede eliminarlo de la siguiente manera:

Generar andamio

$rails generate scaffold Story

Si ha migrado sus archivos, realice una reversión:

$rake db:rollback

Destruye o deshace el andamio : $ rails destruye el andamio Story

¿Cuál es la diferencia entre generar un andamio y generar un modelo en Rails? ¿Cuáles son las ventajas / desventajas de hacer cualquiera de las dos?


Generar un andamio incluye generar un modelo pero también genera

  • Rutas completas
  • Un controlador con todas las acciones para el manejo RESTful del modelo.
  • Vistas que necesita el controlador
  • talones de prueba

El andamiaje es un buen comienzo para los nuevos usuarios de Rails.


Lo más probable es que los nuevos usuarios se confundan con los andamios, ya que no entenderían cómo funcionan juntos todos los componentes. El andamiaje es probablemente el mejor para usuarios experimentados que desean un atajo para el trabajo que normalmente estarían repitiendo.


Cuando genera un modelo, obtiene un modelo así como algunos componentes relacionados. Una de mis formas favoritas de explicar temas como este es realmente probarlo o alentar a otros a que lo prueben, así que si ingresara los comandos, rails generate model Foo name:string description:text dentro de un proyecto de Rails, obtendría:

invoke active_record create db/migrate/20130719012107_create_foos.rb create app/models/foo.rb invoke test_unit create test/unit/foo_test.rb create test/fixtures/foos.yml

La primera línea invoca Active Record , que básicamente vincula su modelo a su base de datos. La siguiente línea crea lo que se llama un archivo de migración. Los archivos de migración contienen instrucciones para alterar su base de datos. Este primer archivo de migración crea la tabla de la base de datos llamada ''foos'' y también creará columnas para "nombre" y "descripción".

La siguiente línea hace que el modelo en sí. El modelo es básicamente una clase de Ruby que se hereda de Active Record. Lo que esto significa es que cualquier método que pueda llamarse en Registro Activo ahora puede llamarse en su modelo. Las tres últimas líneas básicamente crean archivos de prueba relacionados para su modelo. Si estuviera usando RSpec, en su lugar se crearían archivos de especificaciones.

Si su aplicación Rails solo contuviera modelos, no tendría ningún tipo de vista que muestre información en una página, ni tendría instrucciones que controlen el flujo de información. Sus opciones serían también generar controladores (que a su vez generan sus vistas) o generar un andamio, que genera su modelo, vistas, controlador y escrituras en su archivo route.rb. Si corriera rails generate scaffold foo obtendría:

invoke active_record create db/migrate/20130719013307_create_foos.rb create app/models/foo.rb invoke test_unit create test/unit/foo_test.rb create test/fixtures/foos.yml invoke resource_route route resources :foos invoke scaffold_controller create app/controllers/foos_controller.rb invoke erb create app/views/foos create app/views/foos/index.html.erb create app/views/foos/edit.html.erb create app/views/foos/show.html.erb create app/views/foos/new.html.erb create app/views/foos/_form.html.erb invoke test_unit create test/functional/foos_controller_test.rb invoke helper create app/helpers/foos_helper.rb invoke test_unit create test/unit/helpers/foos_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/foos.js.coffee invoke scss create app/assets/stylesheets/foos.css.scss invoke scss identical app/assets/stylesheets/scaffolds.css.scss

Para responder a su pregunta, la ventaja del andamio es que es rápido, fácil y todo está preconfigurado para usted. Sin embargo, las ventajas de generar modelos independientemente de andamios (y luego a su vez generar controladores / vistas donde sea necesario y escribir su propio archivo de rutas.rb) es que tiene mucho más control sobre su aplicación y cómo se ve y funciona, evita código innecesario, puede emplear el desarrollo guiado por el comportamiento o el desarrollo guiado por pruebas, y probablemente otras cosas que alguien más quiera agregar.

Mi último consejo es: Rails es muy fácil de usar, así que prueba a experimentarte tú mismo. Puede deshacer cualquier comando de generate con un comando de destroy correspondiente, así que, por ejemplo, los rails destroy scaffold Foo eliminaría todos los archivos generados por los rails generate Scaffold Foo name:string description:string Proyecto por experimentación.