Ich schreibe eine benutzerdefinierte Rake-Aufgabe für Rails, und es gibt einen Punkt das Programm, wo es zusammenfasst, was es tun wird und fragt dann den Benutzer, was es ist zu tun ist richtig.Akzeptieren von Benutzereingaben von der Konsole/Eingabeaufforderung in einer Rake-Aufgabe
puts "\n Is this what you want to happen? [Y/N]"
answer = gets.chomp
if answer == "Y"
# commits
else if answer == "N"
return false #(Aborts the rake task)
end
Dieser Code führt jedoch dazu, dass der Rake vorzeitig abgebrochen wird;
rake aborted!
No such file or directory - populate
"bevöl" ist der Name der Rake-Aufgabe.
Ich denke, was verursacht wirklich diesen Fehler in der .gets Methode.
Ich weiß nicht, wie die .gets Methode explizit funktioniert, aber ich denke, es muss automatisch die Benutzereingaben zurück zu der Datei senden, wo das Skript geschrieben wird, und aus irgendeinem Grund wird es verwirrt und es denkt, der Name der Rake-Aufgabe ist der Name der Datei. Als populate.rake existiert nicht, ich denke, das ist der Grund, warum der Fehler geworfen wird.
Allerdings weiß ich nicht, wie ich diesen Fehler umgehen kann. Bietet rake eine alternative Methode zu .gets?
http://stackoverflow.com/questions/5427839/is-it-possible-to-make-an-interactive-rake-task – tihom