2013-05-30 28 views
6

Tôi đang làm việc với Ruby 1.8 và tôi có tập lệnh mà tôi muốn gọi nhưng nó nằm trong thư mục mẹ. Dưới đây là cấu trúc:Tải tệp từ thư mục mẹ

maindir/ 
neededscript.rb 
    subdir/ 
    subdir2/ 
     myscript.rb 

Làm thế nào tôi có thể yêu cầu neededscript.rb từ bên myscript.rb?

Trả lời

5

Đây là những gì tôi đã thực hiện thay vì:

File.expand_path("../../neededsript.rb",File.dirname(__FILE__)) 
6

Trong Ruby> = 1.9, bạn có thể sử dụng phương pháp require_relative

require_relative bổ sung cho các phương pháp dựng sẵn yêu cầu bằng cách cho phép bạn tải một tập tin đó là liên quan đến các tập tin có chứa các tuyên bố require_relative.

require_relative '../../neededscript.rb' 
+0

Xin lỗi vì nhận xét muộn nhưng như tôi đã đề cập đang sử dụng ruby ​​1.8. *. – zulq

+0

Ah không phải lo lắng. Chỉ cần cho bối cảnh, tôi sẽ chỉ ra rằng phiên bản không có trong câu hỏi khi tôi trả lời :) nhưng đã được chỉnh sửa sau. Đối với phiên bản ~ 1.8, một trong hai câu trả lời còn lại là tốt. – fullybaked

5

Bạn cũng có thể thêm đường dẫn đến con đường ruby ​​libs bằng cách thêm các dòng để myscript.rb trước khi thực hiện yêu cầu

binpath = File.dirname(__FILE__) 
$:.unshift File.expand_path(File.join(binpath, "..")) 
Các vấn đề liên quan