我在semester.rake
文件中有一个rake任务。看起来像这样
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
我将任务作为rake semester
运行。这给了我错误
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)
为什么我会收到此错误以及解决方案是什么?
答案 0 :(得分:5)
您的semester
任务位于名称空间db
。
因此,您需要运行:
rake db:semester
答案 1 :(得分:3)
根据Shadwell的回答,您的semester
位于名称空间db
中。
所以, rake db:semester
会对你有用
您可以使用命令
了解命名空间中的佣金任务 <强> rake -T | grep namespace
强>
<强>例如强>
namespace :my_namespace do
desc "TODO"
task :my_task1 => :environment do
end
desc "TODO"
task :my_task2 => :environment do
end
end
<强>给出,强>
$ rake -T | grep my_namespace
rake my_namespace:my_task1 # TODO
rake my_namespace:my_task2 # TODO
所以,如果你运行命令,
rake -T | grep db
会在db命名空间下提供您的佣金。
rake -T
命令列出了所有可用的佣金,包括您的佣金