Syntax zum Überspringen des Erstellens von Tests, Assets und Helfern für "Rails Generate Controller"?


82

Ich habe die Hilfe gelesen und den folgenden Befehl ausprobiert, um die Generierung von Tests, Assets und Hilfedateien zu überspringen

$ 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]

Wie Sie vielleicht anhand der obigen Ausgabe bemerken, funktioniert dies & nur controller, routes& viewswerden generiert. Aber wie die letzten beiden Zeilen interessant sind:

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

Offensichtlich scheint Rails die --option-name falseSyntax nicht zu mögen . Also das dieser Fehler, weil ich die falsche Syntax verwendet habe? Wenn ja, wie ist der richtige Weg? Vielen Dank

Antworten:


162

Versuchen Sie es mit --no-gefolgt von optionname:

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

Wenn Sie das Standardverhalten jedes Mal ändern möchten, wenn Sie den Generatorbefehl ausführen, können Sie die gewünschten Standardeinstellungen in der Datei application.rb konfigurieren. Siehe Wie kann ich sicherstellen, dass Rails keine Spezifikationstests für Ansichten und Helfer generiert? .


4
Sie können auch skipanstelle von nozB--skip-assets
Dennis

75

So schalten Sie das Gerät aus, ohne Optionen hinzufügen zu müssen:

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

47

Anwendungen , die nur API dienen nicht erfordern javascript, stylesheet, views, helpers. Um diese Dateien im Generator / Gerüst zu überspringen, fügen Sie den folgenden Codeblock in das Feld einapplication.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

Weitere Informationen zu Generatoren finden Sie unter dem Link


1
Das obige funktioniert, wenn Sie falseanstelle von verwenden nil.
Bigtex777

25

Genauer gesagt:

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

0

Innerhalb der Datei application.rb schreiben: Dadurch wird nicht mehr alles generiert, außer dem, was in der Befehlszeile geschrieben ist

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

Beispiel:

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

für eine Linerlösung =>

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

0

Wenn Sie nur Controller generieren möchten, sonst nichts.

rails g controller [controller_name] [index] --no-helper --no-assets --no-template-engine --no-test-framework
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.