Hi!
Ich habe mich hier an etwas Metaprogramming versucht und bin auf ein
Problem mit Rails gestoßen. Ein Auszug aus meinem AdminController:
require “admin/#{@modul}”
self.class.instance_eval do
include(“Admin::#{@modul}”.constantize)
# Bitte an dieser Stelle keine Hinweise auf Validierung und
Sicherheit…
end
Geladen wird hier ein Modul aus einer externen Datei, z.B.:
module Admin::BlaBla
def muh
end
end
An für sich funktioniert das ja auch wunderbar, zumindestens lokal…
Wenn ich das jetzt aber auf einem mongrel laufen lasse bekomme ich
Probleme. So weit ich das verstanden habe, hält der Mongrel das (also
die erweiterte Instanz) jetzt ja so die ganze Zeit im RAM was
natürlich beim laden von anderen Modulen Probleme verursacht.
Nun meine Frage: Gibt es eine gegenteilige Methode zu instance_eval um
die Methoden wieder aus der Instanz herauszubekommen?
Oder gibt es generell einen viel schöneren Weg seine Rails Controller
etwas zu modularisieren? Ich möchte hierfür nicht lauter
Admin…blabla Controller anlegen, sondern ich finde die Möglichkeit
schon recht sexy einen Controller zu haben, der entsprechend die
Module “einmixt”.
Danke für eure Hilfe!
Gruss,
Benny