Cannot access instance variable in mailer view

Action Mailer is detecting my HTML view but not evaluating any
instance variables I’m referencing in it. Here is my mailer:

class Emailer < ActionMailer::Base

def send_default(recipient, subject, message, sent_at)
@body = message
mail(:to => recipient, :subject => subject)
end

end

I have a view called

This is an HTML email:
<%= @body %>
End of the body.

When I receive the email in Gmail, here is all I see:

This is an HTML email:

End of the body.

Nothing is outputted between those 2 sentences! Any ideas as to
what’s happening? I verified that in the mailer method, @body has a
value. I’m using Rails 3.0.7 and Ruby 1.9.2 and following this guide:

On Fri, May 27, 2011 at 4:40 PM, Stephen H. [email protected]
wrote:

end

This is an HTML email:
<%= @body %>
End of the body.

Hmmm… I just checked as I am doing just about the same thing. Your
code
looks ok, the only difference with mine is I am naming the class
variable
@body_text. I am wondering if @body for you might be getting renamed
somewhere? Its a long shot but try renaming the variable. Also, you can
put
a break point inside the mailer view I think — <%= debugger; @body
%>…
then you can really see what is getting in there.

David, that’s exactly what I did to solve the problem! I renamed the
instance variable and started seeing my string inserted into the
email. Using @body was definitely an issue for some reason.

Thanks,
Stephen

On Fri, May 27, 2011 at 7:32 PM, Stephen H. [email protected]
wrote:

David, that’s exactly what I did to solve the problem! I renamed the
instance variable and started seeing my string inserted into the
email. Using @body was definitely an issue for some reason.

Great… I vaguely recall that I had the same issue, hence the name. I
think I decided that @body must be reserved or used by rails somewhere.
Anyhow, glad it helped!