require 'rubygems'
sẽ điều chỉnh Ruby loadpath
cho phép bạn yêu cầu thành công đá quý bạn cài đặt thông qua rubygems, mà không nhận được một LoadError: no such file to load -- sinatra
.
Từ các tài liệu rubygems-1.3.6:
Khi RubyGems là cần thiết, Kernel # đòi hỏi phải được thay thế bằng chính chúng ta có khả năng bốc đá quý theo yêu cầu.
Khi bạn gọi require 'x', đây là những gì sẽ xảy ra:
Nếu tập tin có thể được nạp từ loadpath của Ruby đang tồn tại, nó là.
Nếu không, đá quý được cài đặt sẽ được tìm kiếm cho một tệp có số là đối sánh. Nếu nó được tìm thấy trong gem 'y', viên đá quý đó được kích hoạt (được thêm vào đường tải).
Chức năng bình thường yêu cầu trả về false nếu tệp đó đã được tải được giữ nguyên.
Xem tài liệu cho Kernel#require để hiểu tại sao điều này là cần thiết.
Nguồn
2010-04-26 07:58:34
RubyGems sẽ chọn phiên bản được cài đặt mới nhất của các đá quý theo sau. Nếu không tìm thấy phần mềm như vậy, ngoại lệ sẽ được tạo ra. – lkahtz
Tại sao nó không cần thiết? Đó là cách tốt nhất để tải một viên ngọc cần thiết. –
Trên thực tế, "yêu cầu" rubygems "" không tải một viên ngọc cần thiết, nó chỉ thay đổi hành vi của phương pháp "yêu cầu". –