我正在为 Rails 编写一个自定义 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
但是,此代码会导致 rake 过早中止;
rake aborted!
No such file or directory - populate
“填充”是 rake 任务的名称。
我认为.gets方法中真正导致此错误的原因是什么。
我不知道.gets方法是如何明确工作的,但我猜它必须自动将用户输入发送回编写脚本的文件,并且由于某种原因它变得混乱并且它认为 rake 的名称任务是文件的名称。由于populate.rake不存在,我认为这就是引发错误的原因。
但是,我不知道如何解决此错误。rake是否提供.gets的替代方法?