11
Ruby: ต้องการ vs require_relative - แนวปฏิบัติที่เหมาะสมที่สุดในการแก้ไขปัญหาการรันทั้งใน Ruby <1.9.2 และ> = 1.9.2
แนวปฏิบัติที่ดีที่สุดคืออะไรหากฉันต้องการrequireไฟล์สัมพัทธ์ใน Ruby และฉันต้องการให้มันทำงานทั้งใน 1.8.x และ> = 1.9.2 ฉันเห็นตัวเลือกไม่กี่: แค่ทำ$LOAD_PATH << '.'และลืมทุกสิ่ง ทำ $LOAD_PATH << File.dirname(__FILE__) require './path/to/file' ตรวจสอบว่าRUBY_VERSION<1.9.2 แล้วกำหนดrequire_relativeเป็นrequireใช้require_relativeทุกที่ที่จำเป็นหลังจากนั้น ตรวจสอบว่าrequire_relativeมีอยู่แล้วหากเป็นเช่นนั้นให้ลองดำเนินการต่อเหมือนในกรณีก่อนหน้า ใช้สิ่งก่อสร้างแปลก ๆ เช่น- อนิจจาพวกมันดูเหมือนจะไม่ทำงานใน Ruby 1.9 ตลอดไปเพราะตัวอย่างเช่น:require File.join(File.dirname(__FILE__), 'path/to/file')$ cat caller.rb require File.join(File.dirname(__FILE__), 'path/to/file') $ cat path/to/file.rb puts 'Some testing' $ ruby caller Some testing $ pwd /tmp $ ruby …