Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 从耙机任务中的控制台/命令提示符接受用户输入大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为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 aborted!
No such file or directory - populate

“填充”是耙子任务的名称.

我认为在.gets方法中真的导致了这个错误.

我不知道.gets方法如何显式地工作,但是我猜测它必须自动将用户输入发送回脚本写入的文件,并且由于某种原因,它会变得困惑,并且认为耙子的名称任务是文件的名称.由于populate.rake不存在,我认为这就是为什么会抛出错误.

但是,我不知道如何解决这个错误.耙子是否为.gets提供了一种替代方法?

解决方法

Rake任务存储在Rails应用程序的lib / tasks文件夹中.耙子任务的文件应以.rake扩展名结尾;例如:populate.rake.

接受输入是使用STDIN.gets.chomp而不是gets.chomp完成的.

namespace :db do
  desc "Prints the migrated versions"
  task :populate => :environment do
    puts "\n Is this what you want to happen? [Y/N]"
    answer = STDIN.gets.chomp
    puts answer
    if answer == "Y"
      # your code here
    elsif answer == "N"
      return false # Abort the rake task
    end
  end
end

您可以使用以下命令运行此rake任务:rake db:populate

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 从耙机任务中的控制台/命令提示符接受用户输入全部内容,希望文章能够帮你解决ruby-on-rails – 从耙机任务中的控制台/命令提示符接受用户输入所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。