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?
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:
Dokumentation zu Initialisierungs-Hooks finden Sie unter guides.rubyonrails.org/initialization.html
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:
Tags und Links ruby-on-rails-3 gem load-path