【问题标题】:Rake aborted! Don't know how to build task瑞克失败了!不知道如何构建任务
【发布时间】:2016-10-25 09:46:13
【问题描述】:

我在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)

为什么会出现此错误,解决方法是什么?

【问题讨论】:

    标签: ruby-on-rails rake rake-task


    【解决方案1】:

    您的 semester 任务位于命名空间 db

    因此,您需要使用以下命令运行它:

    rake db:semester
    

    【讨论】:

      【解决方案2】:

      在 Shadwell 的回答中添加您的 semester 位于命名空间 db 中。

      所以,rake db:semester 会为你工作

      您可以使用命令了解您命名空间中的 rake 任务

      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 taks。

      rake -T 命令列出所有可用的 rake taks,包括你的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 1970-01-01
        • 2015-10-29
        • 1970-01-01
        • 1970-01-01
        • 2013-02-01
        • 2016-01-20
        相关资源
        最近更新 更多