ruby-on-rails – 带有splat参数的Rake任务
发布时间:2020-12-16 21:47:42 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个rake任务,它接受一个必需的第一个参数,然后我想把它们组合成一个数组的任意数量的附加参数: rake course["COURSE NAME",123,456,789] 我试过以下但是args [:numbers]只是一个字符串w / 123而不是所有的数字. task :course,[:name,*:numb
我正在尝试创建一个rake任务,它接受一个必需的第一个参数,然后我想把它们组合成一个数组的任意数量的附加参数:
rake course["COURSE NAME",123,456,789] 我试过以下但是args [:numbers]只是一个字符串w / 123而不是所有的数字. task :course,[:name,*:numbers] => :environment do |t,args| puts args # {:name=>"COURSE NAME",:numbers=>"123"} end 解决方法
从rake 10.1.0开始,您可以使用
Rake::TaskArguments#extras :
task :environment task :course,[:name] => :environment do |t,args| name = args[:name] numbers = args.extras puts "name = #{name}" puts "numbers = #{numbers.join ','}" end 输出: $rake "course[COURSE NAME,789]" name = COURSE NAME numbers = 123,789 对于rake< 10.1.0你可以创建一个足够大的参数列表.这个hack最多可以使用26个数字: task :course,*:a..:z] => :environment do |t,args| name = args[:name] numbers = args.values_at(*:a..:z).compact puts "name = #{name}" puts "numbers = #{numbers.join ','}" end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |