1

I want to create very simple rake task. From one main task I want to call all sub tasks. I tried this code:

namespace :my_namespace do

  task create_all_users: :environment do
    puts "Creating all users"

    create_admin
    create_user

  end

  task create_admin: :environment do
    puts "Creating admin user"
    ######
  end

  task create_user: :environment do
    puts "Creating user"
    ######
  end

end

But I get error:

NameError: undefined local variable or method `create_admin' for main:Object

What is the proper way to call the tasks?

Peter Penzov
  • 1,126
  • 134
  • 430
  • 808

1 Answers1

1

place the default task outside the namespace as explained here. or use actual methods as suggested by @tthomas7 referred answer

with option 1 your code will looks like:

namespace :my_namespace do

  task create_admin: :environment do
    puts "Creating admin user"
    ######
  end

  task create_user: :environment do
    puts "Creating user"
    ######
  end

end

task create_all_users: :environment do
  puts "Creating all users"

  Rake::Task["my_namespace:create_admin"].invoke
  Rake::Task["my_namespace:create_user"].invoke

end
Community
  • 1
  • 1
yaitloutou
  • 1,691
  • 19
  • 23