Rake aborted! Don't know how to build task

15,151

Solution 1

Your semester task is in a namespace db.

You need therefore to run it with:

rake db:semester

Solution 2

Adding to Shadwell's answer your semester is in a namespace db.

so, rake db:semester will work for you

You can know your rake tasks in your namespace using the command

rake -T | grep namespace

Eg:

namespace :my_namespace do
  desc "TODO"
  task :my_task1 => :environment do
  end

  desc "TODO"
  task :my_task2 => :environment do
  end
end

Gives,

$ rake -T | grep my_namespace

rake my_namespace:my_task1  # TODO
rake my_namespace:my_task2  # TODO

So, if you run the command,

rake -T | grep db will give your rake taks under db namespace.

rake -T command lists all rake taks available including yours

Share:
15,151
Admin
Author by

Admin

Updated on August 20, 2022

Comments

  • Admin
    Admin over 1 year

    I have a rake task in semester.rake file. It looks like this

    namespace :db do
      desc "generate semester data"
      task semester: :environment do
        semester = Semester.create!(name: "SummerSemseter")
        semester = Semester.create!(name: "WinterSemester")
        semester = Semester.create!(name: "Spring Semester")        
      end
    end
    

    and I run the task as rake semester. This gives me error

    rake aborted!
    Don't know how to build task 'semester' (see --tasks)
    /home/john/.rvm/gems/ruby-2.2.4/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
    /home/john/.rvm/gems/ruby-2.2.4/bin/ruby_executable_hooks:15:in `eval'
    /home/john/.rvm/gems/ruby-2.2.4/bin/ruby_executable_hooks:15:in `<main>'
    (See full trace by running task with --trace)
    

    Why I get this error and what would be the solution?