我面臨的一個問題是,在登臺或生產環境中運行時,我的Rails應用程序設置爲緩存類。雖然load_paths只包含'app/models',但似乎初始化步驟遞歸地緩存'app/models'中的所有內容。排除Eager負載上的子目錄
# Eager load application classes
def load_application_classes
if configuration.cache_classes
configuration.eager_load_paths.each do |load_path|
matcher = /\A#{Regexp.escape(load_path)}(.*)\.rb\Z/
Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
require_dependency file.sub(matcher, '\1')
end
end
end
end
在這裏的問題是,我們有一個包含有需要引用併發JRuby的環境中陳述文件的應用程序/模型「中的子目錄。由於Rails對此環境一無所知,因此我們的應用程序在加載時會中斷。
現在看來,這裏提出的解決方案......不幸的是,只有#1是理想的。
1)最簡單的解決方案是排除罪魁禍首子目錄,但還沒有找到任何如何完成此任務。
2)Monkey修改load_application_classes方法以跳過特定的子目錄。
3)將子目錄從'app/models'下移出。感覺有點駭人,並且需要很多代碼更改。
想法?