【问题标题】:How not to change require_relative after moving files移动文件后如何不更改require_relative
【发布时间】:2015-10-15 09:44:58
【问题描述】:

我对执行此操作的最佳方法有一些疑问:
我有文件framework/helpers/test_helper.rb
它以行开头
require_relative '../../framework/app_manager/app_manager'
经过一番努力,我想重新组织framework/helpers 文件夹并将此文件移动到 framework/helpers/test/test_helper.rb
之后我必须将此文件的第一行更改为
require_relative '../../../framework/app_manager/app_manager'

所以我的问题是 - 这是require_relative 文件的最佳方式,所以每次我将文件从一个文件夹移动到另一个文件夹时,我都不需要更改require_relative 行。

【问题讨论】:

    标签: ruby require


    【解决方案1】:

    最好的办法是根本不使用require_relative

    将包含您需要的文件的目录放入您的$LOAD_PATH,然后只需require 它们。

    如果您稍后更改目录结构,您只需更改设置$LOAD_PATH 的行,而不是任何require 行。

    这正是使用 $LOAD_PATH 作为 ruby​​ 的原因,并避免使用 require_relative

    http://joshuapaling.com/blog/2015/03/22/ruby-load-path.html

    【讨论】:

    • 我之前看到的几乎所有代码示例都使用了require_relative。使用$LOAD_PATH 是否被视为良好做法?
    • require_relative 在示例中很受欢迎。我认为使用$LOAD_PATHrequire 更可取。你可以自己想办法!使用$LOAD_PATH 和直接require 是处理您提出的确切问题的方法——这就是它的设计目的。我认为,这就是您将看到的几乎所有 gem 和大多数其他编写良好的 ruby​​ 代码所做的事情。我认为人们使用require_relative 因为它不需要他们理解(或在示例中解释) $LOAD_PATH 的工作原理,但我认为使用 $LOAD_PATH 是正确的方法,这正是你问的原因.
    • 谢谢,我尝试在我的项目中实现$LOAD_PATH 用法并进行研究。我希望这不会适得其反
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    相关资源
    最近更新 更多