Ich verwende Rails 4.0.2. Ich fügte hinzu, Unterverzeichnisse (mit Modellnamen) in Concern Verzeichnis:Ausnahme: "load_missing_constant Kreisabhängigkeit erkannt während Autoloading-Konstante" in Rails
- /app/models/concerns/company/cache_concern.rb
- /app/models/concerns/user/cache_concern.rb
- /app/models/Anliegen/document/cache_concern.rb
cache_concern.rb in Unternehmen folgenden Inhalt hatte:
module Company::CacheConcern
included do
...
end
end
In meiner Klasse hatte ich:
class Company
include Company::CacheConcern
...
end
Alles war in Ordnung, bis ich in die Produktion ging. Dann habe ich folgende Ausnahme:
`load_missing_constant ': Kreisabhängigkeit erfasst wird, während konstant Firma selbstladende :: CacheConcern (Runtime)
Zu meinem Problem löse ich ändern Namespace in meiner Sorge Dateien von Unternehmen :: CacheConcern zu Bedenken :: Firma :: CacheConcern. Dies ermöglicht mir das Laden von Anwendungen in Produktionsumgebungen.
Aber jetzt habe ich Problem in Entwicklungsumgebung in Sorge Datei in Zeile, wo ich Firmen Klasse bin mit:
NoMethodError (nicht definierte Methode `current_company‘ für Bedenken :: Unternehmen: Module):
So sieht es aus wie er in Concern-Verzeichnis sucht. In der Produktion ist alles in Ordnung. Um dieses Problem zu beheben, könnte ich zwei Dateien vor dem Klassennamen hinzufügen, um die Klasse aus dem Verzeichnis models zu verwenden.
Ich weiß, dass der Produktionsmodus sich nicht so verhält wie die Entwicklung, weil die ganze App im Speicher zwischengespeichert wird. Ich habe alle ähnlichen Beiträge überprüft. Muss ich Klassennamen aus dem Modellverzeichnis mit zwei Doppelpunkten in den zugehörigen Dateien vorauseilen? Ich wäre sehr dankbar, wenn mir jemand diese seltsame Situation erklären könnte.
Dank