【问题标题】:Rake Task environment variable w/Command Line Arguments带有命令行参数的 Rake 任务环境变量
【发布时间】:2016-08-04 14:53:50
【问题描述】:

所以我在我的 rake 任务中得到了一些“未初始化的常量”,我做了一些谷歌搜索,发现需要加载环境变量。但是我也使用命令行参数,我不确定定位是否正确还是什么:

desc "Wipes Specific User"
task :clean_user => environment [:user] do |t, args|
  puts "Running clean_user for #{args[:user]}..."
  Core::Stuff.find(args[:user]).wipe_user
end

如果没有环境变量,我会抱怨 Core::Stuff 未初始化,但我试图通过 CL 传递 :user。 (这只是一个确保工作正常的示例 rake 任务)。

我错过了什么吗?

编辑:解决问题: task :clean_user, [:user] => :environment 但是现在它似乎正在将我的 PATH 加载到参数中(我收到一条错误消息,抱怨 "Core::Stuff 找不到 ID 为 "" 的用户 ID。所以它就像使用我的 CL 路径作为 ID?

【问题讨论】:

    标签: ruby-on-rails ruby rake


    【解决方案1】:

    gem 中的文档指定:

    task task_name, arguments => 依赖项

    这意味着您的代码需要:

    task :clean_user, [:user] => :environment do |t, args|
    

    【讨论】:

    • 我认为它可能是 :environment (否则它会抱怨:“未定义的局部变量或方法 `environment'”),奇怪的是,它正在加载我的 .find(args[:用户]) 与我的 CL 路径?错误:“找不到带有'id'= /Users/me/Documents/Project/lib/tasks/clean_user.rake的Core :: Stuff”所以它就像使用我的环境变量作为参数(我正在运行rake任务作为 rake clean_user
    • 知道为什么它将我的路径加载到 :user 参数中吗?
    • 你是如何调用 rake 任务的?
    • "Bundle exec rake
    猜你喜欢
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多