Cú pháp để bỏ qua việc tạo kiểm tra, nội dung và trình trợ giúp cho `bộ điều khiển tạo đường ray`?


84

Tôi đã đọc phần trợ giúp và đã thử lệnh sau để bỏ qua việc tạo tệp kiểm tra, nội dung và tệp trợ giúp

$ 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]

Như bạn có thể nhận thấy ở đầu ra ở trên này hoạt động & chỉ controller, routes& viewsđược tạo ra. Nhưng hai dòng cuối cùng rất thú vị:

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

Rõ ràng là đường ray dường như không thích --option-name falsecú pháp. vậy lỗi này do mình dùng sai cú pháp? Nếu có, thì cách chính xác là gì? Cảm ơn

Câu trả lời:


165

Hãy thử sử dụng --no-theo sau optionname:

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

Nếu bạn muốn thay đổi hành vi mặc định mỗi khi chạy lệnh trình tạo, bạn có thể định cấu hình các giá trị mặc định mà bạn muốn trong tệp application.rb - hãy xem Làm cách nào để đảm bảo Rails không tạo kiểm tra đặc điểm cho các chế độ xem và trình trợ giúp? .


4
Bạn cũng có thể sử dụng skipthay vì no, ví dụ:--skip-assets
Dennis

76

Để tắt mà không cần phải thêm các tùy chọn:

# application.rb
config.generators.assets = false
config.generators.helper = false

48

Ứng dụng mà chỉ phục vụ API sẽ không yêu cầu javascript, stylesheet, views, helpers. Để bỏ qua các tệp đó trong trình tạo / giàn giáo, hãy Rails 3.xthêm khối mã bên dưới vàoapplication.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

kiểm tra liên kết để biết thêm chi tiết về máy phát điện


1
Ở trên hoạt động nếu bạn sử dụng falsethay vì nil.
bigtex777

1
Nó hoạt động nhưng bạn sẽ nhận được cảnh báo không dùng nữa đối với Rails 6 khi sử dụng false, vì vậy tốt hơn nên sử dụng nil.
Gino

26

Ngắn gọn hơn:

rails g controller home index --no-assets --no-test-framework

1

Ghi tệp bên trong application.rb: Thao tác này sẽ ngừng tạo mọi thứ ngoài những gì được viết trong dòng lệnh

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

Thí dụ:

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

cho một giải pháp lót =>

rails g controller assets_garments --skip-test-framework --skip-assets --skip-helper

0

Nếu bạn chỉ muốn tạo bộ điều khiển, không có gì khác.

rails g controller [controller_name] [index] --no-helper --no-assets --no-template-engine --no-test-framework
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.