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

CuriousMind
quelle

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? .

PinnyM
quelle
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
Kris
quelle
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

Arivarasan L.
quelle
1
Das obige funktioniert, wenn Sie falseanstelle von verwenden nil.
Bigtex777
25

Genauer gesagt:

rails g controller home index --no-assets --no-test-framework
Erik Trautman
quelle
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
vidur punj
quelle
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
Jin Lim
quelle