2017-08-01 40 views
1

我创建一个快速的一次性任务:导轨中止!不知道如何建设任务“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)>' 

回答

0

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

我改名这一点:

lib/tasks/generate_permissions_yaml.rb 

要这样:

lib/tasks/generate_permissions_yaml.rake 

我发现这个尝试运行rails g task generate_permissions_yaml,看到它产生了.rake扩展名的文件之后。

-1

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

rake db migrate 

代替:

rake db:migrate 

正确的格式有一个冒号,而不是空间

+0

当你发布什么是真实的,它并没有真正解决这个特殊题。对于错误的问题,这是一个很好的答案。 –

相关问题