`rails generate controller`のテスト、アセット、ヘルパーの作成をスキップする構文?


84

ヘルプを読み、次のコマンドを試して、テスト、アセット、ヘルパーファイルの生成をスキップしました

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

あなたはこの作品を超える出力で気づく&のみ可能としてcontroller, routesviews生成されます。しかし、最後の2行は興味深いので、次のようにします。

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

明らかに、railsは--option-name false構文が好きではないようです。間違った構文を使用したため、このエラーは発生しますか?はいの場合、正しい方法は何ですか?ありがとう

回答:


165

--no-続いて使用してみてくださいoptionname

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

ジェネレータコマンドを実行するたびにデフォルトの動作を変更する場合は、application.rbファイルで必要なデフォルトを設定できます。Railsがビューとヘルパーのスペックテストを生成しないようにするにどうすればよいですか?を参照してください


4
skip代わりに使用することもできますno。例--skip-assets
Dennis

76

オプションを追加せずにオフにするには:

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

48

唯一のAPIを提供するアプリケーションは必要ありませんjavascriptstylesheetviewshelpers。ジェネレーター/足場でこれらのファイルをスキップしてRails 3.x、以下のコードブロックを追加するにはapplication.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

ジェネレーターの詳細については、リンクを確認してください


1
false代わりにを使用すると、上記が機能しますnil
bigtex777 2017年

1
これは機能しますが、falseを使用するとRails 6で非推奨の警告が表示されるため、nilを使用することをお勧めします。
ジーノ


1

application.rbファイルの内部書き込み:これにより、コマンドラインに書き込まれたもの以外のすべての生成が停止します

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

例:

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

ワンライナーソリューションの場合=>

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

0

コントローラのみを生成したい場合は、他には何も生成しません。

rails g controller [controller_name] [index] --no-helper --no-assets --no-template-engine --no-test-framework
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.