2016-10-25 11 views
1

私はsemester.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) 

なぜ私はこのエラーが発生し、解決策は何ですか?

答えて

1

semesterタスクがネームスペースdbにあります。あなたのsemesterが名前空間dbである答えShadwellのに追加

rake db:semester 
3

あなたがして、それを実行することが必要です。

ので、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 dbは、DBの名前空間の下にすくいtaksを与えるだろう、だから、

$ rake -T | grep my_namespace 

rake my_namespace:my_task1 # TODO 
rake my_namespace:my_task2 # TODO 

を与えます。

rake -Tコマンドリストあなた

を含む利用可能なすべてのすくいtaks
関連する問題