¿Sintaxis para omitir la creación de pruebas, activos y ayudantes para `rails generate controller`?


85

Leí la ayuda y probé el siguiente comando para omitir la generación de pruebas, activos y archivos de ayuda

$ bin/rails generate controller home index  --helper false --assets false --controller-specs false --view-specs false   
create- app/controllers/home_controller.rb
        route  get "home/index"
        invoke  erb
        create    app/views/home
        create    app/views/home/index.html.erb
        invoke  rspec
        error  false [not found]
        error  false [not found]

Como se puede observar por la producción por encima de esto funciona y solamente controller, routesy viewsse generan. Pero como las últimas dos líneas son interesantes:

error  false [not found]
error  false [not found]

Obviamente, a rails no parece gustarle la --option-name falsesintaxis. ¿Entonces este es este error porque utilicé la sintaxis incorrecta? Si es así, ¿cuál es la forma correcta? Gracias

Respuestas:


166

Intente usar --no-seguido de optionname:

rails generate controller home index  --no-helper --no-assets --no-controller-specs --no-view-specs

Si desea cambiar el comportamiento predeterminado cada vez que ejecuta el comando del generador, puede configurar los valores predeterminados que desee en el archivo application.rb; consulte ¿Cómo puedo asegurarme de que Rails no genera pruebas de especificaciones para vistas y ayudantes? .


4
También puede usar en skiplugar de no, por ejemplo--skip-assets
Dennis

76

Para apagar sin tener que agregar opciones:

# application.rb
config.generators.assets = false
config.generators.helper = false

48

Las aplicaciones que sólo sirven API no requerirán javascript, stylesheet, views, helpers. Para omitir esos archivos en el generador / andamio para Rails 3.xagregar el siguiente bloque de código en elapplication.rb

#to skip assets, scaffolds.css, test framework, helpers, view
config.generators do |g|
  g.template_engine nil #to skip views
  g.test_framework  nil #to skip test framework
  g.assets  false
  g.helper false
  g.stylesheets false
end

consulte el enlace para obtener más detalles sobre los generadores


1
Lo anterior funciona si usa en falselugar de nil.
bigtex777

1
Funciona, pero recibirá una advertencia de obsolescencia a partir de Rails 6 cuando use false, por lo que es mejor usar nil.
Gino

26

Más concisamente:

rails g controller home index --no-assets --no-test-framework

1

Escritura dentro del archivo application.rb: esto dejará de generar todo, excepto lo que está escrito en la línea de comando

config.generators do |g|
  g.test_framework nil
  g.template_engine nil
  g.asstes false
  g.helper false
  g.stylesheets false
  g.javascripts false
end

Ejemplo:

vidur@vidur-desktop:~/Downloads/tukaweb$ rails g controller uploader/three_d_models 
Running via Spring preloader in process 3703
      create  app/controllers/uploader/three_d_models_controller.rb
      invoke  assets
      invoke    js
      invoke    scss

para una solución de revestimiento =>

rails g controller assets_garments --skip-test-framework --skip-assets --skip-helper

0

Si desea generar solo controlador, nada más.

rails g controller [controller_name] [index] --no-helper --no-assets --no-template-engine --no-test-framework
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.