What is the difference between require_relative and require in Ruby?

后端 未结 7 1762
深忆病人
深忆病人 2020-11-22 10:15

What is the difference between require_relative and require in Ruby?

相关标签:
7条回答
  • 2020-11-22 11:11

    From Ruby API:

    require_relative complements the builtin method require by allowing you to load a file that is relative to the file containing the require_relative statement.

    When you use require to load a file, you are usually accessing functionality that has been properly installed, and made accessible, in your system. require does not offer a good solution for loading files within the project’s code. This may be useful during a development phase, for accessing test data, or even for accessing files that are "locked" away inside a project, not intended for outside use.

    For example, if you have unit test classes in the "test" directory, and data for them under the test "test/data" directory, then you might use a line like this in a test case:

    require_relative "data/customer_data_1" 
    

    Since neither "test" nor "test/data" are likely to be in Ruby’s library path (and for good reason), a normal require won’t find them. require_relative is a good solution for this particular problem.

    You may include or omit the extension (.rb or .so) of the file you are loading.

    path must respond to to_str.

    You can find the documentation at http://extensions.rubyforge.org/rdoc/classes/Kernel.html

    0 讨论(0)
提交回复
热议问题