Cómo personalizar y mejorar los generadores en Rails

En nuestro desarrollo diario de aplicaciones web, utilizamos diferentes Rails incorporados en generadores como,

rieles g usuarios del controlador
rails g model Usuario
…mi

Mire cuántos archivos se generan cuando crea un controlador.

Entonces, básicamente, creará

  1. Ver archivo auxiliar
  2. archivo javascript en activos
  3. archivo de hoja de estilo en activos
  4. archivos de prueba en el directorio de prueba

Tienen algunos tipos predeterminados y extensiones. me gusta,

  1. El archivo de script siempre es un script de café
  2. Casos de prueba es predeterminado para Test :: Unit.
  3. CSS está predeterminado al tipo de scss .
  4. La plantilla HTML siempre es erb.

En esta publicación de blog, vamos a personalizar todos estos valores predeterminados y obtendremos una visión general de la personalización de cada generador, uno por uno.

Para personalizar estos generadores tienes que hacer cambios en config / application.rb. Por ejemplo, para usar js como motor javascript predeterminado

config.generators.javascript_engine =: js

Si hay varias opciones de personalización para anular, puede usar el bloque como se indica a continuación,

config.generators do | g |
g.stylesheets false
g.javascripts falsos
fin

No se preocupe por el código interno, ahora veremos diferentes opciones de configuración.

javascript_engine

Puede usar esto para cambiar el tipo predeterminado de archivo JS que es coffee-script de manera predeterminada. Por ejemplo, si no desea utilizar coffeescript, agregue la línea siguiente en su aplicación.rb

config.generators.javascript_engine =: js

test_framework

Si ya tiene Rspec instalado en su aplicación y ahora desea cambiar el marco de prueba para usar Test :: Unit sin eliminar Rspec, simplemente agregue la línea siguiente.

config.generators.test_framework: test_unit

Si no desea generar archivos de prueba para vistas, simplemente agregue vistas: falso en la configuración anterior .

hojas de estilo

Si no desea crear un archivo de hoja de estilo cada vez que crea un controlador, simplemente establezca este valor en falso.

config.generators.stylesheets false

javascripts

Lo mismo que hicimos con la hoja de estilo, podemos desactivar la creación de los archivos JS para cada controlador

config.generators.javascripts false

template_engine

Puede personalizar el motor de su plantilla para haml y slim en lugar de Ruby.

config.generators.template_engine: erb

ORM

También puede cambiar la asignación de ORM para active_record con algunas otras opciones.

config.generators.orm: active_record

Así es como personalizo mis generadores

config.generators do | g |
g.test_framework: rspec, views: false
g.javascript_engine: js
g.stylesheets false
fin

y si intentas nuevamente generar el controlador con la configuración anterior,

Puede ver que crea archivos Rspec para casos de prueba, un archivo JS normal en lugar de un script de café y también omite la creación de un archivo CSS.