2015-10-15 66 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