自定义Rails rake任务与数据库一起使用

时间:2014-06-20 07:30:05

标签: ruby-on-rails

我需要自定义Rails 4 rake任务,使用ip删除数据库中的所有记录:

task :delete_records, [:ip] => :environment do |t, args|
  User.destroy_all(ip: args.ip)
end

我尝试使用以下命令执行它:

捆绑exec rake delete_records [" 127.0.0.1"]但我发现错误:

no matches found: delete_records["127.0.0.1"]

我该如何解决?预先感谢!

1 个答案:

答案 0 :(得分:0)

我猜测你曾使用this answer寻求帮助 - 虽然我们之前已经完成了rake任务,但我们从来没有使用过像这样的参数

-

<强>测试

我们之前已经创建了自定义rake任务 - 它们位于lib/tasks

我会通过以下方式测试你的:

#lib/tasks/your_task.rake
desc "Remove all records for particular IP"
task :delete_records, [:id] => :environment do
    args.with_defaults(:ip => "127.0.0.1") 
    User.destroy_all ip: args.ip
end

如果这不起作用,则意味着您的任务定义有问题(它不在正确的文件夹或其他内容)

以上应确定你的论证定义是否是问题;如果它不是你应该让我知道所以我们可以努力解决它