Matt Stone wrote:
Hi,
I have an actionmailer script that happily processes an inbox. It is called via script & reads emails & grabs the attachments for further processing
I want to be able to access a method [process_attachment] in app/controllers/application.rb, but the mailman routine does not appear to be able to access it. I've tried both including environment.rb & app/controllers/application.rb but still get the error - undefined method 'process_attachment'
Is there anyway to do this, or do I have to move the logic somewhere else..??
-------------------------------------------- mailman.rb --------------------------------------------
require File.dirname(__FILE__) + '/../../config/environment.rb' require File.dirname(__FILE__) + '/../../app/controllers/application.rb'
class Inbound < ActiveRecord::Base end
class Mailman < ActionMailer::Base
def receive(email) email.attachments.each do |attachment| inbound = Inbound.new inbound.attachment = attachment process_attachment(inbound) end end end
Hey
I'm not sure if this is the best method, its probably not even a good
method :] but it's something you could try in the meantime
extract the method into a separate file into your /lib directory, aka. /lib/my_truly_global_methods.rb
Then require this file in either your environment.rb, or (less blasphemously) in your mailer class. Doesn't feel very elegant, I know, but I'm not sure if something like helper_method exists for mailers...
Hope this helps... Cheery-o Gustav Paul gustav@rails.co.za