load | require | require_relative | |
|---|---|---|---|
| Đường dẫn | Phải có đuôi .rb | Không cần đuôi | Không cần đuôi |
| Caching | Không — load lại mỗi lần | Có — chỉ load 1 lần | Có — chỉ load 1 lần |
| Đường dẫn gốc | $LOAD_PATH | $LOAD_PATH | Tương đối so với file hiện tại |
ruby
load 'utils.rb' # load lại mỗi lần gọi
require 'json' # từ gem/stdlib, cache
require_relative 'models/user' # relative từ file nàyKhi nào dùng cái nào:
- require — gem, stdlib (JSON, Net::HTTP...)
- require_relative — file trong cùng project
- load — hiếm; khi muốn reload file đang thay đổi (như config hot-reload)