DesignAssembler

備忘録に近い

rakeタスクを書く場所

この記事のjnchitoさんのコメントを見て確かに、と思いました。

rakeタスクのロジックはモデルに書くべき

何を当たり前の事をって感じですが、ビジネスロジックはモデルに書くべきです。

ですのでrake作りたいときはモデルにクラスメソッド書いてそのメソッドをrakeファイルから呼び出すようにすべきです。

モデルにメソッドを置くとテストも楽に出来るようになります。(上記事参照)

例えば、以下のような感じにします。

#lib/tasks/counter.rake
namespace :count
  desc 'counter'
  task export: :environment do |t|
    Count.count_updadate
  end
end

#app/models/count.rb
class Count
  def self.count_update
  end
end

参考