Standardmäßig fügt Rails dem Autoload-Pfad keine Unterordner des Modellverzeichnisses hinzu. Aus diesem Grund können nur Modelle mit Namespace gefunden werden - der Namespace beleuchtet das Unterverzeichnis, in das gesucht werden soll.
Fügen Sie config / application.rb Folgendes hinzu, um alle Unterordner von app / models zum Autoload-Pfad hinzuzufügen :
config.autoload_paths += Dir[Rails.root.join("app", "models", "{*/}")]
Oder, wenn Sie eine komplexere haben app / models Verzeichnis, das obige Verfahren von Ballung zusammen alle Unterordner von app / Modelle können nicht richtig funktionieren. In diesem Fall können Sie dies umgehen, indem Sie etwas expliziter vorgehen und nur die von Ihnen angegebenen Unterordner hinzufügen:
config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name1>")
config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name2>")
UPDATE für Rails 4.1+
Ab Rails 4.1 enthält der App-Generator config.autoload_paths
standardmäßig keine . Beachten Sie also, dass das oben Genannte wirklich in config / application.rb gehört .
AKTUALISIEREN
Feste automatischer Laden Pfad Beispiele in dem obigen Code zu verwenden , {*/}
statt {**}
. Lesen Sie unbedingt den Kommentar von muichkine, um Einzelheiten dazu zu erfahren .