Reputation: 111
I have an existing .rake file. It used to have one task and I added one more task to the existing rake file.
But when I try to run, it throws an error:
rake aborted!
Don't know how to build task ___
abc.rake
file:
namespace abcd
namespace abcde
task pqr do
------------------
end
task mno do ( new task which I added)
---------------------
end
end
end
But when I used command: rake abcd:abcde:mno
-- it showed above error
So I used rake -T -A
, I am able to see the rake task abcd:abcde:pqr
but am unable to see the other one.
I am new to rails. Please help me out.
Thanks in advance.
Upvotes: 9
Views: 27262
Reputation: 45
In Rails 6.x you have to use rails instead of rake. The example from user400617 above
namespace :abcd do
namespace :abcde do
task :pqr do
puts 'Inside PQR'
end
task :new_added_task do
puts 'Inside New Added Task'
end
task :mno => [:new_added_task] do
puts 'Inside Mno'
end
end
end
would be run like this
rails abcd:abcde:pqr # Output => Inside PQR
rails abcd:abcde:mno # Output => Inside New Added Task
# Inside Mno
rails abcd:abcde:new_added_task # Output => Inside New Added Task
Took me a while to figure this out.
Upvotes: 1
Reputation:
Here what you exactly want.....
Inside lib/tasks create file abcd.rake
Write the following code inside abcd.rake file
namespace :abcd do
namespace :abcde do
task :pqr do
puts 'Inside PQR'
end
task :new_added_task do
puts 'Inside New Added Task'
end
task :mno => [:new_added_task] do
puts 'Inside Mno'
end
end
end
Now try following commands....
rake abcd:abcde:pqr # Output => Inside PQR
rake abcd:abcde:mno # Output => Inside New Added Task
# Inside Mno
rake abcd:abcde:new_added_task # Output => Inside New Added Task
To view all tasks run command
rake -T -A
It will show all tasks along with your own created tasks...
rake abcd:abcde:mno #
rake abcd:abcde:new_added_task #
rake abcd:abcde:pqr #
.............
Upvotes: 17
Reputation: 427
Step 1:
Have you tried prepending the command with 'bundle exec'?
Ex: ~$ bundle exec rake abcd:abcde:mno
If you have multiple versions in your gem file you'll often need to run bundle exec to run the command using your current project directory's gems.
(Optional) Step 2:
If that fails try specifying the environment like this
Ex: ~$ bundle exec rake abcd:abcde:mno RAILS_ENV=development
Upvotes: 2
Reputation: 762
Here is test code for you:
create a file abcde.rake under ../lib/tasks/abcde.rake
namespace :abcde do
desc 'pqr pqr pqr pqr'
task :pqr => :environment do
puts 'pqr'
end
desc 'mno mno mno mno'
task :mno => :environment do
puts 'mno'
end
end
Then run this command
rake -T
output of above command is:
rake abcde:mno # mno mno mno mno
rake abcde:pqr # pqr pqr pqr pqr
Run
rake abcde:mno #mno
Upvotes: 1