Hi guys
I'm trying to use ActionMailer to send notifications outside of my
controllers from a rake task but I'm getting an error saying the method is
undefined.
NoMethodError: undefined method `hour_record_expiry_notification' for
Notifier:Class
The ActionMailer class looks like this:
class Notifier < ActionMailer::Base
ADMIN_ADDRESS = "xx...@xxxxx"
def hour_record_expiry_notification(recipient,hour_record)
recipients recipient.email_address_with_name
from ADMIN_ADDRESS
subject "Freetime: WARNING - Hours expire in 10 days or less"
body :user => recipient, :hour_record => hour_record
content_type "text/html"
end
end
and the rake task looks like this:
namespace :freetime do
desc "Find hours that will expire soon and notify the owners"
task :notify_expiry => :environment do
a = User.find(5);b = HourRecord.find(129)
Notifier.hour_record_expiry_notification(a,b)
Rails.logger.info "Sent users expiry notifications."
end
end
Notifier.instance_methods shows the method but I'm thinking there's some
tricker involved since it isn't an instance. :)
I've googled around but I can't find anyone having the same problem which
leads me to believe I'm doing something stupid or nobody does mail
notifications with rake (This is a one off that runs from a cron job). Any
ideas? I normally would crack my head a bit more but it's 4:30 and if I go
home without solving it, I'll have to use the old shotgun.
--
You received this message because you are subscribed to the Google Groups "Ruby
or Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rails-oceania?hl=en.