A quick one here, since I had to search around and combine suggestions from a couple of places I found… I needed to write a rake task that would call a class method on one of the models, plus accept a command-line argument which it would pass on. The magical incantation that worked looks like this:
namespace :mytest do desc "Import a CSV file into the database" task :import_csv, :file_path, :needs => [:environment] do |t, args| if (args.file_path) Themodel.load_csv(args.file_path) else puts "Must specify a file for importing" end end end
The trick was putting the argument
:file_path followed by the
:needs => [:environment] in order to get access to the model. At that point I could invoke the method on the model, and have access to
args.file_path to pass into it.
Then it’s just a matter of invoking the task:
And there you go. Hope the info helps someone out.