rails 中止!不知道如何构建任务 'task_name'
rails aborted! Don't know how to build task 'task_name'
我正在创建一个快速的一次性任务:
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)>'
事实证明,这是由于我命名文件的方式所致。它应该有一个 .rake
扩展名,而不是 .rb
.
我重命名为:
lib/tasks/generate_permissions_yaml.rb
为此:
lib/tasks/generate_permissions_yaml.rake
我在尝试 运行 rails g task generate_permissions_yaml
并看到它生成了一个扩展名为 .rake
的文件后发现了这一点。
对于新手 - 如果您在 rake 命令中使用 space 而不是冒号,这是一个常见的错误。例如,如果您输入:
rake db migrate
而不是:
rake db:migrate
正确的格式有一个冒号,而不是 space
我正在创建一个快速的一次性任务:
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)>'
事实证明,这是由于我命名文件的方式所致。它应该有一个 .rake
扩展名,而不是 .rb
.
我重命名为:
lib/tasks/generate_permissions_yaml.rb
为此:
lib/tasks/generate_permissions_yaml.rake
我在尝试 运行 rails g task generate_permissions_yaml
并看到它生成了一个扩展名为 .rake
的文件后发现了这一点。
对于新手 - 如果您在 rake 命令中使用 space 而不是冒号,这是一个常见的错误。例如,如果您输入:
rake db migrate
而不是:
rake db:migrate
正确的格式有一个冒号,而不是 space