Piszę niestandardowe zadanie rake'u dla Rails, i jest punkt, w którym program podsumowuje, co zamierza zrobić, a następnie pyta użytkownika, czy to, co jest zamiar zrobić jest poprawny.Akceptowanie danych wprowadzanych przez użytkownika z konsoli/wiersza poleceń wewnątrz zadania rake
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
Jednak kod ten powoduje przedwczesne przerwanie prowizji;
rake aborted!
No such file or directory - populate
"Populate" to nazwa zadania nachylenia.
Myślę, że to, co naprawdę powoduje ten błąd w metodzie .gets.
Nie wiem, jak metoda jawnie działa, ale domyślam się, że musi automatycznie wysłać dane użytkownika z powrotem do pliku, w którym napisany jest skrypt, i z jakiegoś powodu robi się zdezorientowany. uważa, że nazwa zadania rake jest nazwą pliku. Ponieważ populate.rake nie istnieje, myślę, że właśnie dlatego błąd jest zgłaszany.
Jednak nie wiem, jak mogę obejść ten błąd. Czy rake oferuje alternatywną metodę na .gets?
http://stackoverflow.com/questions/5427839/is-it-possible-to-make-an-interactive-rake-task – tihom