跳过“ 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生成。但是最后两行很有趣:

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

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

Answers:


165

尝试使用--no-其次为optionname

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

如果您想在每次运行generator命令时更改默认行为,则可以在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.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

检查链接以获取有关发电机的更多详细信息


1
如果您使用false而不是,则上述方法有效nil
bigtex777

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.