2012-03-31 11 views
20

Ich bin gerade in die Rails-Programmierung gekommen und es sieht so aus, als gäbe es zwei Programme, mit denen ich mein Projekt lokal ausführen kann: rackup und foreman.Warum gibt Foreman einige Dinge nicht aus, bis ich Control-C drücke?

Ein Unterschied, den ich bemerkte, ist, dass Vorarbeiter einige Dinge nicht ausgeben würde, die ich erwarten würde, und ich würde sehen, ob ich rackup stattdessen lief, bis ich Strg + C drücke, um den Server zu schließen. Dann erscheinen alle diese Nachrichten, als ob sie versteckt wären.

Gibt es einen Grund dafür? Wie kann ich Vorarbeiter dazu bringen, ausführlicher zu sein?

+0

das Problem für Sie gelöst ist? Überlegen Sie, ob Sie die richtige Antwort markieren oder uns sagen, was fehlt. – oma

Antwort

47

Wenn Sie keine Ausgabe von Ihrem Programm sehen, besteht die Wahrscheinlichkeit, dass es stdout puffert. Ruby puffers stdout standardmäßig.

Sie können dieses Problem beheben, indem Sie den folgenden Code in Ihrer development.rb Datei setzen:

$stdout.sync = true 

http://github.com/ddollar/foreman/wiki/Missing-Output

+0

Vielen Dank! Ich frage mich, warum das nicht standardmäßig für Entwicklungsumgebungen gilt - es fühlt sich an wie ein Rails-Bug. – eblume

+0

Aber wo genau steckt man diese Zeile in eine Rails App? Inside config/development.rb? – kikito

+5

@kikito ja - in Ihrer Umgebung rb-Datei. Auch Neuromancer sollte diese Antwort akzeptieren. – courtsimas