You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程调用带参数的Rake任务?

在Rake中通过Ruby代码传递参数执行任务

如果你已经知道用 Rake::Task['my_task'].execute() 执行任务,传递参数的方式分两种,取决于你的任务定义方式:

1. 先确保任务支持接收参数

首先要让你的Rake任务定义时声明接受参数,示例如下:

task :my_task, [:arg1, :arg2] do |_task, args|
  puts "第一个参数:#{args[:arg1]}"
  puts "第二个参数:#{args[:arg2]}"
end

2. 传递参数执行任务

方式一:按顺序传参数数组

按照任务定义的参数顺序,直接传递数组:

Rake::Task['my_task'].execute(['hello', 'world'])

方式二:传命名哈希参数

通过键值对指定参数,不用严格遵循定义顺序:

Rake::Task['my_task'].execute(arg1: 'hello', arg2: 'world')

额外注意事项

  • 如果需要重复执行同一个任务,每次执行后必须调用 reenable 方法重置任务状态,否则Rake会判定任务已完成而跳过执行:
    task = Rake::Task['my_task']
    task.execute(arg1: '第一次执行')
    task.reenable
    task.execute(arg1: '第二次执行')
    
  • 如果任务没有定义参数,强行传递参数会触发错误,务必保证任务定义和传参逻辑匹配。

内容的提问来源于stack exchange,提问作者Antzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:27:33