ruby - Rails, Create a Task in multiple environment? -
i have few custom rake tasks. want create task execute on 2 environments when call it. mean, when run :
rake initialize_global_settings
i want executed on development and test environment.
actually i'm constrained doing :
rake initialize_global_settings
(this executed in development environment default, don't know why) , : rake initialize_global_settings rails_env=test
is possible make task doing both ?
here's task :
task :initialize_global_settings => :environment puts "generating global settings parameters..." parameters = ["few", "parameters", "here"] parameters.each |param| glob_set = globalsetting.new(:field_name => param, :field_value => "") if glob_set.save puts "#{param} created" else puts "#{param} exist" end end puts "done." end
i found solution doing :
task :initialize_global_settings => :environment puts "generating global settings parameters..." parameters = ["few", "parameters", "here"] environments = ['development', 'test'] environments.each |environment| rails.env = environment puts "\nrunning task in "+environment+" environment \n\n" parameters.each |param| glob_set = globalsetting.new(:field_name => param, :field_value => "") if glob_set.save puts "#{param} created" else puts "#{param} exist" end end puts "\nparameters have been set" end end
it works i've got conflict between same variables set in test , development environment , don't know why.
Comments
Post a Comment