【问题标题】:rails aborted! Don't know how to build task 'task_name'导轨中止!不知道如何构建任务'task_name'
【发布时间】:2017-08-01 18:39:55
【问题描述】:

我正在创建一个快速的一次性任务:

require 'yaml'

task generate_permissions_yaml: :environment do
  permissions = []

  Permission.order(:title).each do |permission|
    permissions << {
      title: permission.title,
      code: permission.code,
      description: permission.description
    }
  end

  puts permissions.to_yaml
end

当我用rails generate_permissions_yaml 运行它时,我得到了这个错误:

rails aborted!
Don't know how to build task 'generate_permissions_yaml' (see --tasks)
/bundle/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:14:in `block in run_rake_task'
/bundle/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:11:in `run_rake_task'
/bundle/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:51:in `run_command!'
/bundle/gems/railties-5.0.2/lib/rails/commands.rb:18:in `<top (required)>'

【问题讨论】:

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


    【解决方案1】:

    事实证明,这是由于我命名文件的方式。它应该有一个.rake 扩展名,而不是.rb

    我重命名了:

    lib/tasks/generate_permissions_yaml.rb
    

    到这里:

    lib/tasks/generate_permissions_yaml.rake
    

    我在尝试运行 rails g task generate_permissions_yaml 并看到它生成了一个扩展名为 .rake 的文件后发现了这一点。

    【讨论】:

    • 谢谢!一个小时的大部分时间里,我都在用头撞墙,试图弄清楚为什么我的任务没有运行。
    【解决方案2】:

    对于新手 - 如果您在 rake 命令中使用空格而不是冒号,这是一个常见错误。例如,如果您输入:

    rake db migrate
    

    代替:

    rake db:migrate
    

    正确的格式是冒号,不是空格

    【讨论】:

    • 虽然您发布的内容是真实的,但它并没有真正解决这个特定问题。对于错误的问题,这是一个写得很好的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多