Forum: Ruby on Rails Difficulty with body in ActionMailer

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Taylor Strait (Guest)
on 2007-04-10 03:34
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(p)
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           = 'server@buwatercooler.org'
      @sent_on        = Time.now
      @headers        = {}
15  end
Mark Loeser (Guest)
on 2007-04-10 15:50
(Received via mailing list)
Taylor Strait <rails-mailing-list@andreas-s.net> 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
Taylor Strait (Guest)
on 2007-04-10 16:28
> 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.
Mark Loeser (Guest)
on 2007-04-10 16:32
(Received via mailing list)
Taylor Strait <rails-mailing-list@andreas-s.net> 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
Taylor Strait (Guest)
on 2007-04-10 17:12
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.
Mark Loeser (Guest)
on 2007-04-10 18:16
(Received via mailing list)
Taylor Strait <rails-mailing-list@andreas-s.net> 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
This topic is locked and can not be replied to.