Verwendung in Rails-Anwendung mit Single Table Inheritance Memcached?
-
22-07-2019 - |
Frage
Ich habe eine Rails-Anwendung, die STI verwendet verschiedene Arten von Benutzern zu handhaben, wie zum Beispiel:
class Admin < User
...
end
Ich mag Memcached verwenden, aber ich halte den gefürchteten „unbekannte Klasse / Modul“ Fehler. Ich habe Vorbelastung versucht alle meiner Active Modelle ohne Erfolg. Die erste Anforderung arbeitet als normal, aber der erste Zug von Memcached Fehlern aus. Ich habe gefolgt diese Anweisungen entweder ohne Erfolg .
wird unter Verwendung von Memcached möglich mit einzelner Tabelle Vererbung?
Lösung
Ich denke, dies ist darauf zurückzuführen, verzögertes Laden der Klassen. Wenn Sie es von Memcached die Klassendefinition nennen nicht geladen wird, und dann erhalten Sie den Fehler.
Die Abhilfe, die ich verwenden ist:
Admin #lazily load the class definition
# do whatever that has cached Admins
Andere Tipps
Das Problem war, dass restful_authentication der login_from_session Methode geladen wurde, bevor der vorgenannten before_filter ausgeführt wurde. Pre-Laden der STI Benutzerklassen an der Spitze dieser Methode gearbeitet.
nur ein kurzer Kommentar, ich habe gelesen, dass require_dependency ‚admin‘ mit jetzt bevorzugt wird, nicht sicher, warum
require_dependency 'region'
Auch ich habe festgestellt, dass dies nicht notwendig ist, wenn Sie fügen
config.cache_classes = true
Ihren production.rb (oder development.rb zum Testen), dies scheint alle Modelle für das Caching zu fangen