我需要自定义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"]
我该如何解决?预先感谢!
答案 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
如果这不起作用,则意味着您的任务定义有问题(它不在正确的文件夹或其他内容)
以上应确定你的论证定义是否是问题;如果它不是你应该让我知道所以我们可以努力解决它