将参数传递给 Rake 任务中的方法 [重复]

Posted

技术标签:

【中文标题】将参数传递给 Rake 任务中的方法 [重复]【英文标题】:Passing arguments to a method in Rake Task [duplicate] 【发布时间】:2015-08-17 23:49:46 【问题描述】:

我有一个 Rake 任务,其中我从命令行获取两个参数,我需要将这些参数传递给任务内部的方法。我该怎么做?

namespace :auto_sales_commission do
   desc "Process for Daily Summary Commission"
   task :daily_sales_commission,[:arg1, :arg2] => :environment do |t,args|
        #some code
   end

   def get_date(arg1,arg2)
        #some code
   end
end

【问题讨论】:

我不确定为什么这是重复的,因为我不确定这个问题如何解决我的问题。如果可以,请详细说明。 在接受答案的第一个示例中,您可以看到 args 可以作为散列访问,因此 args[:arg1] 将产生第一个参数,依此类推。 【参考方案1】:

您可以像哈希参数 (1) 一样访问参数:

task :daily_sales_commission, [:arg1, :arg2] do |t,args|
  #args can be treated like a hash.
  get_date(args[:arg1], args[:arg2]) #<- call your method
end

def get_date(arg1,arg2)
    #some code
end

这些参数不是常用的命令行参数,必须直接作为rake参数的参数使用。该示例将 1 和 2 作为参数值:

rake daily_sales_commission[1,2]

(1) 它不是一个 Hash,它是一个 Rake::TaskArguments-object。但您也可以使用[] 访问参数。

【讨论】:

以上是关于将参数传递给 Rake 任务中的方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给使用 Heroku Scheduler 调用的 rake 任务?

如何在 Rails 中使用环境将参数传递给 Rake 任务? [复制]

我可以将参数传递给 rake db:seed 吗?

快速将参数传递给#selector方法[重复]

将方法作为参数传递给另一个方法[重复]

python中的Typerror(),同时将参数传递给路由[重复]