Wie kann ich die Rails-Umgebung für mein etwas eigenständiges Ruby-Skript festlegen?

7

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?

    
messick 09.02.2009, 19:56
quelle

7 Antworten

22

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.

    
Ryan Bigg 09.02.2009, 20:50
quelle
9

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.

%Vor%

Um die Umgebung zu ändern, führen Sie sie einfach mit:

aus %Vor%     
Garrett 09.02.2009 20:14
quelle
5

Vergessen Sie script / runner nicht.

>

Setzen Sie Ihre Umgebungsvariable über die Befehlszeile und

%Vor%     
Mike Woodhouse 09.02.2009 23:00
quelle
1

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!

    
pantulis 09.02.2009 20:03
quelle
1

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%     
Ryan McCuaig 07.04.2010 22:58
quelle
0

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.

    
Aram Verstegen 09.02.2009 19:59
quelle
0
%Vor%

Dies funktioniert jedoch nur, wenn das Gemfile Ihres Skripts alle Abhängigkeiten Ihrer Rails-App enthält. Sie können möglicherweise ein Gemfile von einem anderen laden, z. B. nur eval it, um dieses Kopieren / Einfügen zu umgehen.

    
Kris 21.08.2013 15:19
quelle

Tags und Links