2015-10-15 83 views
0

我有一些问题要做到这一点关于最好的办法后,如何在不改变require_relative:
我有文件framework/helpers/test_helper.rb
它与线
require_relative '../../framework/app_manager/app_manager'
开始有些toughts我希望重新组织framework/helpers文件夹,移动后此文件 framework/helpers/test/test_helper.rb
之后,我必须改变这个文件的第一行
require_relative '../../../framework/app_manager/app_manager'移动文件

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

回答

1

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

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

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

这正是为什么要使用$LOAD_PATH作为红宝石意图,并避免require_relative

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

+0

几乎所有的代码示例,我以前看到使用'require_relative'。使用'$ LOAD_PATH'是否被认为是好的做法? – ShockwaveNN

+0

'require_relative'在例子中很受欢迎。我认为使用'$ LOAD_PATH'和'require'是可取的。你可以做出自己的想法!使用'$ LOAD_PATH'和直接'require'是处理你所问的确切问题的方法 - 这就是它设计的目的。而且,你会看到几乎所有的宝石和大多数其他写得很好的Ruby代码。我认为人们使用'require_relative'是因为它不需要他们理解(或者在一个例子中解释)$ LOAD_PATH是如何工作的,但我认为使用$ LOAD_PATH是正确的方法,因为你问。 – jrochkind

+0

谢谢,我尝试在我的项目中实现'$ LOAD_PATH'用法并查看它。我希望这对我不会适得其反 – ShockwaveNN