railsのコントローラをcronから実行するには

事の発端は、がりがり実装していたコントローラのメソッドをクーロンからも実行したいという感じ。
いくつか調べてみるとrailscronとか、いくつかの方法でmodelは叩ける。
けどcontrollerは「wgetすれば?」という感じ?なのかしら。
それはなんかイヤだし、modelに移すのもね。

で、色々と調べてみると、かなり盛り上がってる記事を発見!
http://matthall.wordpress.com/2006/12/06/how-to-execute-a-rails-controller-action-via-cron/
読んでみるとなるほど簡単で、runnerにActionControllerを指定して叩いてあげればいいみたい。

$ script/runner -e development "app = ActionController::Integration::Session.new; app.get 'account/index'"

※app/controllers/account_controller.rb (method:index)

ただ、気をつけないといけないのは、config/environment.rbにaction_controllerを呼び込んであげないと、
「誰それ?controller?知らない。」
みたいなツンツンした反応が返ってくる。
ので、config/environment.rbの一番下に以下を追記。
※enviroment.rbを編集したら必ず再起動を忘れずに!

require 'action_controller/integration'

これでデレてくれます。
あとはcronですね。
crontab -eコマンドで編集を行い、完了したらcrontab -lでチェックをかけます。

$ crontab -e
# 追記内容
 /絶対パス/ruby /RAILSルート/script/runner "app = ActionController::Integration::Session.new; app.get 'sim_all/index'"
$crontab -l

以上。
本当はrailsの中で完結してもいいナァと思っていたんですが、既にcrontabもでっぷりしてきていたし。まぁこれで良いか。