Forum: Ruby on Rails Rendering partials 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.
8194edd5ad2d97cac9d4f04d2595dfcc?d=identicon&s=25 Shanti Braford (sbraford)
on 2006-03-22 18:33
Hello,

Is anyone out there rendering partials successfully in ActionMailer
templates?

I am having trouble with this, and wasn't sure if it was my
configuration or something with a version of Rails I'm running.

We've got over 15 mailer templates, all working like a charm.

But we have a piece of shared code, that we'd really like to not have to
copy & paste into 5 other different templates.

In case it has to do with my setup, here's a bit about it:

In models/

class Mailer < ActionMailer::Base
...
end

In views/mailer/ - I have:
_test.rhtml  - the partial I'm trying to render
send.rhtml   - the template calling the partial

In send.rhtml, I've tried various incarnations of:

<%= render :partial => "test" %>

<%= render_partial("mailer/test") %>

<%= render_partial("test") %>

<%= render_file("mailer/_test.rhtml", false) %>

(one at a time, of course) ... all to no avail.

The Error:

  undefined method `controller_path' for Mailer:Class



My Config:

Ruby 1.8.4
Edge Rails: Rev 3476
OS X Tiger latest / all updates applied.


Any insight would be mucho appreciated!!

- Shanti

http://sablog.com/  - dispatches from the garage
http://sproutit.com/ - webapps for small businesses

ps. I have a ticket opened here, but I hope I can close it soon (due to
*user* error not a limit in Rails!):
http://dev.rubyonrails.org/ticket/4326
5b132632f47e8c7e2a83157cef4649c8?d=identicon&s=25 Agnieszka Figiel (agnessa)
on 2006-03-23 18:46
Shanti Braford wrote:
> Hello,
>
> Is anyone out there rendering partials successfully in ActionMailer
> templates?
>

Hi,

I haven't tried with partials since helpers worked fine for me, maybe
you could take this route as well.

--
Agnieszka
631d1677786f0725da6ccee46043686e?d=identicon&s=25 Jonathan Viney (Guest)
on 2006-03-24 13:30
(Received via mailing list)
I've got this piece of code in an AM template:

<%= render :partial => '../shared/listing' %>

I think the default path is the current path of the AM template, so
../ puts it down into app/views/. That line will render
app/views/shared/_listing.rhtml.

-Jonathan
8e0158397185e7255577ee858044d384?d=identicon&s=25 Shanti Braford (Guest)
on 2006-03-24 16:26
Jonathan Viney wrote:
> I've got this piece of code in an AM template:
>
> <%= render :partial => '../shared/listing' %>
>
> I think the default path is the current path of the AM template, so
> ../ puts it down into app/views/. That line will render
> app/views/shared/_listing.rhtml.
>

Jonathan - you're a lifesaver.  You just saved me from 6 copy&paste jobs
anytime the template changed =)

Posted the workaround to this ticket for future googlers:
http://dev.rubyonrails.org/ticket/2926


- Shanti
This topic is locked and can not be replied to.