ruby-on-rails – 从耙机任务中的控制台/命令提示符接受用户输入
发布时间:2020-12-16 20:30:32 所属栏目:百科 来源:网络整理
导读:我正在为Rails编写一个自定义的rake任务,并且有一点是程序总结了它将要做什么,然后询问用户是否要做的是正确的. puts "n Is this what you want to happen? [Y/N]"answer = gets.chompif answer == "Y" # commitselse if answer == "N" return false #(Abor
我正在为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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |