Hinzufügen zu Rails autoload_path from Gem

8

Ich möchte ein Schmuckstück schreiben, das einer Rails-Anwendung ein app/services -Verzeichnis hinzufügt.

Da ich es aus dem Gem heraus hinzufügen möchte, habe ich diese Lösung gefunden:

%Vor%

Das Problem ist, dass config.autoload_path ein eingefrorenes Array ist, so dass es nicht sinnvoll erscheint, es zu modifizieren.

Irgendwelche Vorschläge, wie dies besser erreicht werden könnte?

    
phoet 08.06.2011, 13:19
quelle

2 Antworten

11

config.autoload_paths ist innerhalb des :set_autload_paths Initialisierers eingefroren . Das Array wird an ActiveSupport::Dependencies.autoload_paths übergeben, daher würde das Ändern des ursprünglichen Arrays nicht viel Sinn ergeben. Deshalb ist es gefroren.

Sie sollten sich in :before => :set_autoload_paths einhaken und config.autoload_paths erweitern können, bevor es übergeben und eingefroren wird:

%Vor%

Dokumentation zu Initialisierungs-Hooks finden Sie unter guides.rubyonrails.org/initialization.html

    
rubiii 18.06.2011, 08:56
quelle
4

Zunächst befinden sich alle Verzeichnisse unter app / * bereits im Ladepfad seit Rails 3.0. In jedem Fall sollten Sie stattdessen die Pfade api verwenden. Beispiel aus dem Quellcode von Rails:

Ссылка

    
José Valim 20.06.2011 22:16
quelle

Tags und Links