rails ejemplos ruby-on-rails rake

ruby on rails - ejemplos - Pasando un parámetro o dos a una tarea de Rake



schedule cron rails (2)

Tengo una tarea de rake a la que quiero pasarle parámetros. Por ejemplo, quiero emitir un comando como

<prompt> rake db:do_something 1

y dentro de la tarea de rake:

... cust = Customer.find( the_id_passed_in ) # do something with this customer record, etc... ...

Bastante sencillo, ¿verdad?


La forma en que los comandos de rake aceptan y definen los argumentos es, no, bonita.

Llame a su tarea de esta manera:

<prompt> rake db:do_something[1,2]

He agregado un segundo parámetro para mostrar que necesitará la coma, pero omita los espacios.

Y defínelo así:

task :do_something, :arg1, :arg2 do |t, args| args.with_defaults(:arg1 => "default_arg1_value", :arg2 => "default_arg2_value") # args[:arg1] and args[:arg2] contain the arg values, subject to the defaults end


Mientras se pasan los parámetros, es mejor optar por un archivo de entrada, ¿puede ser esto un excel a json o lo que sea que necesite y desde allí leer la estructura de datos y las variables que necesita, incluido el nombre de la variable, según sea necesario? Para leer un archivo puede tener la siguiente estructura.

namespace :name_sapace_task do desc "Description task...." task :name_task => :environment do data = ActiveSupport::JSON.decode(File.read(Rails.root+"public/file.json")) if defined?(data) # and work whit yoour data, example is data["user_id"] end end

Ejemplo json

{ "name_task": "I''m a task", "user_id": 389, "users_assigned": [389,672,524], "task_id": 3 }

Ejecución

rake :name_task