gpt4 book ai didi

ruby-on-rails - 带有 splat 参数的 Rake 任务

转载 作者:数据小太阳 更新时间:2023-10-29 06:48:40 25 4
gpt4 key购买 nike

我正在尝试创建一个 rake 任务,它需要一个必需的第一个参数,然后是我想将它们组合到一个数组中的任意数量的附加参数:

rake course["COURSE NAME", 123, 456, 789]

我尝试了以下方法,但 args[:numbers] 只是一个带有 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, 123, 456, 789]"
name = COURSE NAME
numbers = 123,456,789

对于 rake < 10.1.0,您可以创建足够大的参数列表。

以下是最多 26 个数字的解决方法:

task :course, [:name, *:a..:z] => :environment do |t, args|
name = args[:name]
numbers = args.values_at(*:a..:z).compact
puts "name = #{name}"
puts "numbers = #{numbers.join ','}"
end

关于ruby-on-rails - 带有 splat 参数的 Rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com