30

通常のジェネレーター構成で、実行時にビューフォルダーとアクションテンプレートの作成をオフにする方法はありますrails generate controllerか?

どこにもオプションが見つからず、ここのコードにはポインターが表示されません。

いずれにせよ、API 用に独自のコントローラー/リソース ジェネレーターを構築する予定ですが、当面の間、この煩わしさを解消する方法があるかどうかを知りたいと思っていました。

4

4 に答える 4

46

これは十分に文書化された機能ではありませんが、コマンドに--skip-template-engine(alias --no-template-engine) オプションを追加してみてください。

rails generate controller foo bar --skip-template-engine

ダミーアプリでのデモ:

rails g controller my_controller index show --no-template-engine
      create  app/controllers/my_controller_controller.rb
       route  get "my_controller/show"
       route  get "my_controller/index"
      invoke  test_unit
      create    test/functional/my_controller_controller_test.rb
      invoke  helper
      create    app/helpers/my_controller_helper.rb
      invoke    test_unit
      create      test/unit/helpers/my_controller_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/my_controller.js.coffee
      invoke    scss
      create      app/assets/stylesheets/my_controller.css.scss
于 2013-08-23T16:52:03.443 に答える
31

コントローラーでビューが生成されないようにするには、テンプレート エンジンを無効にします。

一度:

rails g controller ControllerName action1 action2 --skip-template-engine

--skipすべてのオプションには別名オプションもあることに注意してください--no

デフォルト:

# config/application.rb

config.generators do |g|
  g.template_engine false
end

# OR

config.generators.template_engine = false

API のみのアプリケーション (フロント エンドなし) を使用している場合は、アセットとヘルパーがコントローラーで生成されないようにすることもできます。

一度:

rails g controller api/users --no-helper --no-assets --no-template-engine

デフォルト:

# config/application.rb

config.generators do |g|
  g.assets false
  g.helper false
  g.template_engine false
end

# OR

config.generators.assets = false
config.generators.helper = false    
config.generators.template_engine = false

アセットを無効にすると、スタイルシートとJavaScript の生成がスキップされます。1 つだけスキップする場合は、--no-stylesheetsまたは--no-javascripts、または in config/application.rbuseを使用します。

config.generators.stylesheets = false
config.generators.javascripts = false

デフォルトの構成で何かが生成されないようになっている場合 (アセットやヘルパーなど)、1 つのケースでそれらが必要な場合は、次のように生成できます。

rails g controller foo --helper --assets --skip

where--skipは、既に存在するファイルの生成をスキップします。

于 2015-02-05T12:44:35.247 に答える