我读了帮助&尝试使用以下命令跳过生成测试、资产&helper文件
$ 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
语法。这个错误是因为我用错了语法吗?如果是,那么正确的方法是什么?由于
尝试使用--no-
和optionname
:
rails generate controller home index --no-helper --no-assets --no-controller-specs --no-view-specs
如果您想在每次运行generator命令时更改默认行为,您可以在应用程序中配置您想要的默认值。
无需添加选项即可关闭:
# application.rb
config.generators.assets = false
config.generators.helper = false
仅提供API的应用程序将不需要javascript
, stylesheet
, views
, helpers
。要跳过Rails 3.x
的generator/scaffold中的这些文件,请在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
查看有关生成器的更多详细信息
更简洁:
rails g controller home index --no-assets --no-test-framework
应用程序内部。这将停止生成除命令行
中写入的内容外的所有内容。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
如果您只想生成控制器,则不生成其他内容
rails g controller [controller_name] [index] --no-helper --no-assets --no-template-engine --no-test-framework