【问题标题】:How do I use "gets" on a rake task?如何在 rake 任务中使用“gets”?
【发布时间】:2010-10-09 06:34:43
【问题描述】:

每当我尝试在 rake 任务中使用 get 函数时都会出错。有没有办法让它工作?

错误提示,“没有这样的文件或目录 - (rake 任务名称)”

【问题讨论】:

  • 错误信息似乎很容易解释......
  • 看起来是这样,但事实并非如此。请看下面我的回答。关于 Kernel#gets 和 STDIN.gets 之间的区别存在相当多的混淆。

标签: ruby-on-rails ruby rake


【解决方案1】:

问题在于Kernel#gets(如果您只使用gets 本身,这就是您所调用的)假设您从传递给Rake 的参数命名的文件中提取。这意味着gets 试图返回一个名为 [rake-task-here] 的文件的内容,该文件几乎肯定不存在。

试试STDIN.gets

【讨论】:

【解决方案2】:

我认为您不应该在 rake 任务中使用gets,如果您需要从命令行获取输入,您可能应该将其作为参数传递,但是如果您发布一些不起作用的代码,那么我相信你会得到更好的答案。

【讨论】:

  • 一般来说,命令行参数更好的选择,但是在 rake 任务中使用 get 有很多很好的理由。它们中的大多数都与您真正想要做的事情有关的身份验证或验证。 (“部署生产代码”)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2023-04-07
  • 2014-08-19
  • 2016-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多