Heroku上的Rake任务:STDIN.gets.strip - “Enter”键表现为按下两次

时间:2013-02-27 11:41:19

标签: ruby-on-rails heroku stdin enter rake-task

我做了一个交互式rake任务来完成管理工作。此任务通过STDIN.gets.strip输入,并在本地按计划行事:我输入一些值,按Enter,任务在下一个STDIN.gets.strip进一步停止。

但是当我尝试通过heroku gem(在Windows 7中)在Heroku上运行它时:

heroku run rake admin --app my-application

它会将Enter键识别为按两次 - 第一次有值,第二次只有Enter,没有值。

如何防止这种行为?我可以在STDIN.gets.strip之后以某种方式清理输入缓冲区吗?

1 个答案:

答案 0 :(得分:0)

我个人认为这是错误的方法。

最好简单地定义你的rake任务来获取命令行参数然后你不需要处理交互式输入的麻烦

有关详细信息,请参阅此问题

Rails Rake: How to pass in arguments to a task with :environment