2014-06-20 59 views
1

工作,我需要做一個自定義的軌道4 rake任務使用IP來刪除數據庫中的所有記錄:自定義Rails的Rake任務與數據庫

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

我嘗試使用以下命令它來執行:

束EXEC耙delete_records [ 「127.0.0.1」],但我有錯誤:

no matches found: delete_records["127.0.0.1"] 

我怎樣才能解決呢?預先感謝!

+1

嘗試'args [:ip]'來讀取值。 –

回答

0

我猜你使用this answer尋求幫助 - 儘管我們以前做過耙任務,我們從來沒有使用一個帶參數的這樣

-

測試

我們之前已經創建了自定義佣金任務 - 它們駐留在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 

如果這也不行,那將意味着有什麼東西錯了你的任務的定義(這不是正確的文件夾或某事)

以上應確定你的論點的定義是問題;如果不是,你應該讓我知道,所以我們可以修復它

相關問題