2016-02-05 57 views
0

要加載一個Ruby文件,只有當它是必要的,我在一個項目這樣做:代碼中間是否有優勢?

XController ... 
    ... 
    if(!user.last_ip_country_id || user.last_login > Date.today - 1.week) 
    require 'ip_to_country.rb' 

思考Ruby on Rails的運行方式,是否有意義做到這一點?它應該在頂部?或者,僅在需要時才需要文件(如延遲加載)有什麼優勢?

+1

這一切都取決於受加載文件影響的資源。 – Gearloose

+0

鋼軌的一般經驗法則是「預先加載一切。」 – mudasobwa

回答

0

如果這部分代碼在開始時執行一次,那麼這樣做是有道理的。事實上,有這樣做的真實代碼。典型的例子是當你想要取決於你的環境需要不同的寶石或本地文件。

另外,當要加載的文件有自己的名稱空間不與代碼的其他部分進行交互時,則可以在代碼中的任意點執行延遲加載。

否則,即如果該代碼的一部分在使用過程中被重複執行,並且要加載的文件可能與代碼的其餘部分進行交互(例如通過猴子修補常用類),那麼這不是一個好主意要做到這一點,因爲如果在特定的時間將代碼加載到代碼中間,那麼考慮代碼與gem的交互會更困難。

相關問題