ruby – 如何将数组作为参数传递给Rake任务?
发布时间:2020-12-16 20:44:43 所属栏目:百科 来源:网络整理
导读:我正在写一个Rake任务,我想传递一个数组作为参数之一.这是我现在的方式. task :change_statuses,:ids,:current_status,:new_status do |task,args| puts "args were #{args.inspect}"end 我已经尝试以这些方式运行任务: # First argument as arrayrake "cha
我正在写一个Rake任务,我想传递一个数组作为参数之一.这是我现在的方式.
task :change_statuses,:ids,:current_status,:new_status do |task,args| puts "args were #{args.inspect}" end 我已经尝试以这些方式运行任务: # First argument as array rake "change_statuses[[1,2,3],active,inactive]" # First argument as string rake "utility:change_account_statuses['1,3',foo,bar]" 我的预期产出是: args were {:ids=> [1,:current_status=> 2,:new_status=> 3} 但是,我的实际输出在每种情况下是: args were {:ids=>"[1",:current_status=>"2",:new_status=>"3]"} 如何将数组传递给Rake任务? 解决方法
灵魂之一是避免在字符串中的符号,所以您的命令行将如下所示:
$rake change_statuses['1 2 3',bar] 然后你可以简单地拆分ID: # Rakefile task :change_statuses,args| ids = args[:ids].split ' ' puts "args were #{args.inspect}" puts "ids were #{ids.inspect}" end 或者您可以解析ids值以获得预期的输出: args[:ids] = args[:ids].split(' ').map{ |s| s.to_i } 我使用耙子0.8.7 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |