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 的生成。如果您只想跳过一个,请使用--no-stylesheetsor --no-javascripts,或在config/application.rb使用中:

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

如果您的默认配置跳过了某些东西的生成(例如资产和助手),但在一种情况下您需要它们,您可以像这样生成它们:

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

where--skip跳过生成已经存在的文件。

于 2015-02-05T12:44:35.247 回答
5

只是想我会尝试强调 --skip-template-engine 标志,看看它是否在生成器中工作并且它很有魅力!bin/rails g controller没有从Rails 4.2 应用程序中的命令生成的视图模板。

尝试:

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

我知道有点晚了,但这些东西在谷歌中一直存在!;)

于 2015-01-20T22:41:27.503 回答
3

如果你正在创建一个没有前端的 API,你可以继续使用rails new --api. 但是,如果您确实计划创建前端(例如单页应用程序),我不推荐此选项,因为它会关闭很多东西,包括资产管道。

于 2016-12-01T23:00:44.967 回答