RailsのWheneverプラグインを使用して、特定の時間にモデルプロセスを実行しようとしています。私のschedule.rbは次のとおりです。
every 1.day, :at => '5:30 am' do
runner "User.mail_out"
end
私のモデルは次のとおりです。
class User < ActiveRecord::Base
acts_as_authentic
def mail_out
weekday = Date.today.strftime('%A').downcase
@users = find(:conditions => "#{weekday}sub = t")
@users.each { |u| UserMailer.deliver_mail_out(u)}
end
end
script/runner -e development "User.mail_out" コマンドを実行しようとすると、次のエラーが発生します。
/var/lib/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:48: undefined method `mail_out' for #<Class:0xb708bd50> (NoMethodError)
from (eval):1
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `eval'
from /var/lib/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:48
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
from script/runner:3
誰が何が間違っているのか指摘できますか? また、mail_out プロセスを (コマンド ラインから) 手動で呼び出して、メール システムの機能をテストするにはどうすればよいでしょうか。
ありがとうございました!