Meine apps/Modellordner sieht aus wie die ‚erwartete module_classe_file top_level Klasse definieren‘:eine Modul-Klasse mit dem gleichen Namen als Top-Level-Klasse zu haben:
models/
module/
category.rb
category.rb
Aber ich kann nicht scheinen zu finden, Möglichkeit, Modul/Kategorie korrekt zu laden: Ich habe immer den Fehler Expected /app/models/module/category.rb to define Category
.
Ab jetzt sehe ich nur zwei Möglichkeiten: es nicht zu autoloading Hinzufügen oder Umbenennen module/category.rb
-module/module_category.rb
, weder scheint wie eine gute Idee
Danke. Dies ist ein großes Modul mit vielen Modellen, es wird für API-Anrufe verwendet, daher dachte ich, sein Platz wäre in/models statt in/lib. Ich sprach über das Umbenennen der Datei zu /module/module_category.rb in meiner Frage, aber ich hoffte, es gab eine weniger hässliche Art, es zu tun – user3033467
Oh ja, du hast darüber in der Frage gesprochen :). Nun, das ist der einzige Weg, wie ich das mache. Vielleicht wird jemand mit etwas Besserem kommen. Wie auch immer, wenn du mit der lib-Route gehst, vergiss nicht, sie in deine App zu laden. 'config.autoload_paths <<" # {Rails.root}/lib'. Ich werde die Antwort aktualisieren. –