90

我阅读了帮助并尝试了以下命令来跳过测试、资产和帮助文件的生成

$ 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, routes&views是有效的。但是最后两行很有趣:

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

显然,rails 似乎不喜欢--option-name false语法。所以这个错误是因为我使用了错误的语法?如果是,那么正确的方法是什么?谢谢

4

6 回答 6

167

尝试使用--no-后跟optionname

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

如果您想在每次运行生成器命令时更改默认行为,您可以在 application.rb 文件中配置您想要的默认值 - 请参阅如何确保 Rails 不会为视图和帮助程序生成规范测试?.

于 2012-12-26T20:32:01.870 回答
78

要关闭而无需添加选项:

# application.rb
config.generators.assets = false
config.generators.helper = false
于 2013-06-13T13:36:03.773 回答
50

仅提供 API 服务的应用程序不需要javascript, stylesheet, views, helpers. 要跳过生成器/脚手架中的这些文件,以便Rails 3.xapplication.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

检查链接以获取有关 生成器的更多详细信息

于 2015-03-10T11:31:05.337 回答
28

更简洁:

rails g controller home index --no-assets --no-test-framework
于 2014-09-10T02:45:22.703 回答
2

如果你只想生成控制器,别无他法。

rails g controller [controller_name] [index] --no-helper --no-assets --no-template-engine --no-test-framework
于 2020-02-26T12:33:34.257 回答
1

在 application.rb 文件中写入:这将停止生成除命令行中写入的内容之外的所有内容

config.generators do |g|
  g.test_framework nil
  g.template_engine nil
  g.assets 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
于 2019-12-09T05:57:21.057 回答