この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
今回はRailsの処理の中でRakeのタスクを実行する方法を紹介したいと思います。
実行したいRakeのタスク名が「hoge:huga」だったとすると以下のコードになります。
Rake::Task.new(‘hoge:huga’, Rake.application).invoke
基本Rakeのタスクを処理の中で実行するということはほぼないかと思いますが、Rakeのタスクのテストしたい時にテストコードの中で実行できたら便利かと思います。
Railsの環境は、1.2.6、2.3.8で確認しました。2.3.8の場合は事前に「require ‘rake’」する必要があります。