2010-06-28 80 views

回答

7

config/environment.rb並不是最好的地方,因爲如果嘗試擴展在執行environment.rb時尚未解決的類,則可能會遇到嚴重的加載排序問題。

最好把文件放到config/initializers中。放置在那裏的任何腳本將在加載rails運行時後執行。

你可以做的是創建一個文件的lib/my_extensions.rb

module MyExtensions 
end 

然後在LIB/my_extensions/array.rb:

module MyExtensions::Array 
    def join_with_commas 
    join(", ") 
    end 
end 

和配置/初始化/ load_my_extensions。 rb

class Array 
    include MyExtensions::Array 
end 

這將導致MyExtensions :: Array每次調用一個請求時自動重載st開發模式。這比每次更改代碼時都重新啓動應用程序更好。

+0

嗯。這對我不起作用。 – 2014-05-20 03:18:12

1

在所有擴展中添加lib/目錄可能會更乾淨。然後在加載該文件的config/environment.rb中添加一行:

require File.join(RAILS_ROOT, 'lib', 'array.rb') 
相關問題