为ruby中的rake提供参数

时间:2011-02-16 11:40:25

标签: ruby rake

我有一个rake任务,它在命令行中使用了一个参数:

rake sunspot:reindex[, MyModel]

(是的,括号后面的直接逗号是正确的。)

如何在Ruby中指定相同的rake命令?

有些尝试不起作用:

Rake::Task['sunspot:reindex'].execute("[, ActsAsTaggableOn::Tagging]")
Rake::Task['sunspot:reindex'].execute([nil, ActsAsTaggableOn::Tagging])
Rake::Task['sunspot:reindex[, ActsAsTaggableOn::Tagging]'].execute

我可以尝试其他一些建议吗?

2 个答案:

答案 0 :(得分:1)

您可能需要使用invoke代替execute

Rake::Task['sunspot:reindex'].invoke(nil, ActsAsTaggableOn::Tagging)

答案 1 :(得分:0)

您可以将该命令作为系统进程调用。你有几个选择

klass = Model

`rake sunspot:reindex #{klass}`
%x(rake sunspot:reindex #{klass})
system "rake", "sunspot:reindex", klass