Difficulty with body in ActionMailer


#1

AWRDwRv2 is pretty vague on the @body part of setting up a mailer. Here
is my problem:

p = Person.find(1)
=> #Person:0x45c944c

SiteMailer.request_admin_approval§
NoMethodError: You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]=
from site_mailer.rb:10:in `request_admin_approval’
from (irb):2

ln def self.request_admin_approval(person)
@subject = ‘New User Notification’
10 @body[“person”] = person
@recipients = person.email
@from = ‘removed_email_address@domain.invalid’
@sent_on = Time.now
@headers = {}
15 end


#2

Taylor S. removed_email_address@domain.invalid said:

The error occurred while evaluating nil.[]=
from site_mailer.rb:10:in `request_admin_approval’
from (irb):2

ln def self.request_admin_approval(person)
@subject = ‘New User Notification’
10 @body[“person”] = person

body = :person => person

That should do what you are looking for.


Mark Loeser
email - mark AT halcy0n DOT com
web - http://www.halcy0n.com


#3

body = :person => person

That should do what you are looking for.

Thanks, Mark. Where did that come from? There isn’t anything like it
in AWDwRv2.


#4

Taylor S. removed_email_address@domain.invalid said:

body = :person => person

That should do what you are looking for.

Thanks, Mark. Where did that come from? There isn’t anything like it
in AWDwRv2.

http://api.rubyonrails.org has some nice examples on it. It currently
seems to be down though.


Mark Loeser
email - mark AT halcy0n DOT com
web - http://www.halcy0n.com


#5

This syntax doesn’t work for me:

body = :person => person

But this does:

body :person => person

The API docs conflict with AWDwRv2 and the mailer generator in the
format. The API doesn’t use ‘=’ but the generator and AWD do. I assume
the API docs are out of date, but then @body = does NOT work. Bummer.


#6

Taylor S. removed_email_address@domain.invalid said:

This syntax doesn’t work for me:

body = :person => person

But this does:

body :person => person

Yup, oops. I meant to remove that =. I always go by whatever is on
api.rubyonrails.org.


Mark Loeser
email - mark AT halcy0n DOT com
web - http://www.halcy0n.com