Frage

Wenn ich eine Konstante in meinem Rails environment.rb, zum Beispiel ...

SOME_CONSTANT = 3

Ist es möglich, den Zugriff auf diese in meinem Capistrano deploy.rb irgendwie? Es scheint einfach, aber ich kann nicht herausfinden, wie.

War es hilfreich?

Lösung

Dieses endete arbeiten:

erstellt eine Datei config/initializers/my_constant.rb

legte meine Konstante in dort (Schienen lädt die Dateien automatisch dort, damit ich die Konstante in meinem app verwenden können)

dann in deploy.rb load 'config/initializers/my_constant' hinzugefügt, so dass es auch dort verwendet werden könnte.

Andere Tipps

Sie sollten es Zugriff über das ENV [] Hash (dies ist eine Ruby-Sache), hier ist ein Beispiel für die TERM Umgebungsvariable verwendet wird.

puts "Your Terminal is #{ENV['TERM']}"

Wenn Sie eine rubin Konstante, von Ihrer Schiene Umgebung benötigen, sollten Sie sie laden:

require 'config/environment'

Beachten Sie, dass diese Ihre gesamte Anwendungsumgebung laden, sollten Sie denken, so etwas wie AppConfig zu verwenden, oder SimpleConfig (anderes Werkzeug hier einfügen) Konfigurationen speichern, dann müssen Sie nur das Tool laden, die Ihre Konfigurationsdateien verarbeitet.

Warum diese Konstanten in einer Datei im lib nicht definieren / und erfordern dann die Datei sowohl in Ihrer Rails-Anwendung und Ihre Capfile?

Da der Wert nicht nur durch die Rails-Anwendung verwendet wird, würde ich wahrscheinlich speichert solche Konfigurationsinformationen in einer Sprache Agnostiker Format (yaml, json, ini, xml), die leicht durch verschiedene Werkzeuge ohne Angst vor möglichen Nebenwirkungen analysiert werden kann .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top