Ich habe ein Ruby-Skript in meiner Rails-App, mit dem ich einige Daten von Twitter lade.
In Zukunft werde ich es zu einem automatischen Hintergrundprozess machen, aber jetzt führe ich es manuell wie folgt aus:
%Vor%Um die Rails-Modellklassen und ähnliches zu verwenden, habe ich als oberste Zeile des Skripts Folgendes:
%Vor%Standardmäßig wird die Entwicklungsumgebung verwendet. Aber ich würde gerne irgendwann die Produktionsumgebung auswählen können.
Update # 1 : Die RAILS_ENV-Konstante wird in der Datei environment.rb festgelegt. Also konnte ich ENV ['RAILS_ENV'] = 'production' ganz oben (vor der environment.rb) Zeile setzen und mein Problem etwas lösen. Also, meine neue Frage ist, kann in Env Vars über die Befehlszeile übergeben werden?
Wenn du die Rails-Umgebung nutzen willst, wäre es am besten, dies zu einem Rake-Skript zu machen. Setzen Sie dazu eine twitter.rake Datei in lib / tasks und beginnen und beenden Sie sie wie folgt:
%Vor%Auf diese Weise machst du es, indem du "Konventionen befolgst", und es hat nicht diesen "orrible Geruch" damit verbunden.
Ich verwende derzeit die folgende Methode, und ich weiß, dass die Umgebung nicht über die Erweiterung rb verfügt, sie wird nicht benötigt. Sie können es auch vor dem Ausführen einstellen, um ENV["RAILS_ENV"]
zu überschreiben.
Um die Umgebung zu ändern, führen Sie sie einfach mit:
aus %Vor%Vergessen Sie script / runner nicht.
>Setzen Sie Ihre Umgebungsvariable über die Befehlszeile und
%Vor%Sie können das auch tun
Skript / Konsolenentwicklung & lt; Pfad / zu / Ihrem / script.rb
Bewährt umständlich - und wird nach der Auswertung jeder einzelnen Zeile Ihres Skripts jede Menge Irb-Müll ausspucken - funktioniert aber für Quickies und Sie müssen sich nicht an diese verdammte Zeile erinnern.
Und vergessen Sie nicht, dass die eleganteste Art, Ihre App um Skripts zu erweitern, die nützliche Dinge tun, das Schreiben von Rake-Aufgaben ist!
Die akzeptierte Antwort für die Verwendung von rake
ist gut gewählt, aber Sie möchten die Umgebung für das Testen von Hilfsklassen immer noch manuell festlegen.
Hier wird die Testumgebung für Utility-Klassen in /lib
eingerichtet. Für diese tendiere ich dazu, die Ruby-Konvention zu verwenden, damit meine Klassendatei ihre Tests ausführt, wenn sie über die Befehlszeile ausgeführt wird. Auf diese Weise kann ich TDD außerhalb der web-zentrierten Test-Kabelbäume von Rails ausführen, aber die Klasse innerhalb von rake
verwenden, ohne die Umgebung, die sie definiert, zu beeinflussen.
Das steht ganz oben:
%Vor%und das geht nach unten:
%Vor% füge die Zeile hinzu:
RAILS_ENV = '<your environment of choice>'
pantulis: Es ist cool, dass das funktioniert, aber für Quickies verwende ich einfach RAILS_ENV = '<your environment of choice>' ruby path/to/script.rb
. So legen Sie Umgebungsvariablen in der Konsole fest.
Tags und Links ruby ruby-on-rails