ไวยากรณ์ที่จะข้ามการสร้างการทดสอบเนื้อหาและตัวช่วยสำหรับ "รางสร้างตัวควบคุม"?


85

ฉันอ่านวิธีใช้และลองใช้คำสั่งต่อไปนี้เพื่อข้ามการสร้างการทดสอบเนื้อหาและไฟล์ตัวช่วย

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

เห็นได้ชัดว่ารางดูเหมือนจะไม่ชอบ--option-name falseไวยากรณ์ ดังนั้นข้อผิดพลาดนี้เป็นเพราะฉันใช้ไวยากรณ์ผิด? ถ้าใช่แล้ววิธีที่ถูกต้องคืออะไร? ขอบคุณ

คำตอบ:


166

ลองใช้--no-ตามด้วยoptionname:

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

หากคุณต้องการเปลี่ยนลักษณะการทำงานเริ่มต้นทุกครั้งที่คุณเรียกใช้คำสั่งตัวสร้างคุณสามารถกำหนดค่าเริ่มต้นที่คุณต้องการในไฟล์ application.rb - ดูฉันจะแน่ใจได้อย่างไรว่า Rails ไม่ได้สร้างการทดสอบข้อมูลจำเพาะสำหรับมุมมองและตัวช่วย .


4
คุณยังสามารถใช้skipแทนได้noเช่น--skip-assets
Dennis

77

หากต้องการปิดโดยไม่ต้องเพิ่มตัวเลือก:

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

48

การใช้งานที่ให้บริการเฉพาะ API จะไม่ต้องการjavascript, stylesheet, ,views helpersหากต้องการข้ามไฟล์เหล่านั้นในเครื่องกำเนิดไฟฟ้า / โครงสำหรับRails 3.xเพิ่มบล็อกโค้ดด้านล่างในไฟล์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

ตรวจสอบลิงค์สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ เครื่องกำเนิดไฟฟ้า


1
ข้างต้นใช้งานได้หากคุณใช้falseแทนnil.
bigtex777

1
ใช้งานได้ แต่คุณจะได้รับคำเตือนการเลิกใช้งานของ Rails 6 เมื่อใช้ false ดังนั้นจึงควรใช้ nil ดีกว่า
Gino


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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.