Ich möchte die Protokollierungsstufe einer Anwendung (Ruby) ändern.
%Vor%Nun, der irb war nicht glücklich damit und warf "NameError: falscher konstanter Name Logger :: WARN" in mein Gesicht. Pfui! Ich wurde beleidigt.
Ich könnte dies in einem Fall tun / wann, um dies zu lösen, oder log.level = 1, aber es muss einen eleganteren Weg geben!
Hat jemand irgendwelche Ideen?
-Daniel
Warum benutzen Sie nicht einfach die Literalkonstante in Ihrem config
Hash?
Dann musst du nicht mit const_get
herumalbern oder so etwas; Du kannst einfach log.level = config[:level]
machen.
Wenn unbedingt eine Zeichenfolge sein muss, können Sie das Präfix für den Namensraum löschen und const_get
im Modul Logger
aufrufen:
Wenn wirklich die qualifizierte Zeichenfolge sein muss, können Sie versuchen, dies zu verwenden Blog qualified_const_get
method (das ist kein eingebautes!).