Hallo UG,
ich quäle mich gewissermassen mit multipart emails – und habe doch den
Eindruck, dass das eigentlich garnicht nötig wäre.
Ich möchte eine Email verschicken, deren Inhalt sowohl in text als
auch in xml-Format anhängt.
Die Doku verstehe ich so, dass es ausreicht, in
app/models/order_notifier.rb folgendes zu schreiben:
class OrderNotifier < ActionMailer::Base
def versanddienstleister_notification(order)
recipients “bla”
from “bla”
subject “Neue Bestellung”
end
end
Dann müssten Templates unter app/views/order_notifier/ die mit
versanddienstleister_notification anfangen gefunden werden und alle
gerendert werden.
Hier liegen bei mir:
versanddienstleister_notification.text.plain.rhtml
versanddienstleister_notification.text.xml.rhtml
Rails sucht allerdings lediglich nach
versanddienstleister_notification.rhtml
Wenn ich die Datei hinlege, frisst er die, wenn ich die anderen beiden
stattdessen hinlege, findet er keine.
Geht Euch das auch so? Ist da im aktuellen Rails
Ruby version 1.8.5 (i686-darwin8.8.2)
RubyGems version 0.9.4
Rails version 1.2.5
Active Record version 1.15.5
Action Pack version 1.13.5
Action Web Service version 1.2.5
Action Mailer version 1.3.5
Active Support version 1.4.4
ein Bug?
Alternativ habe ich folgendes probiert:
def versanddienstleister_notification(order)
setup_email(order)
subject “Bitte Bestellung ##{order.id} versenden”
part( :content_type => “multipart/alternative” ) do |p|
p.part( :content_type => “text/plain”,
:body =>
render_message(“versanddienstleister_notification.text.plain.rhtml”,
{:order => order}) )
p.part( :content_type => "text/xml",
:body =>
render_message(“versanddienstleister_notification.text.xml.rxml”,
{:order => order}) )
end
end
Für das erste Attachment geht das, bei dem zweiten nutze ich
render_message um ein builder template zu rendern. Ist das korrekt?
Problem ist: Rails steigt irgendwie aus, die Fehlermeldung ist:
Erake aborted!
Command failed with status (1): [/usr/local/bin/ruby -Ilib:test
"/usr/local…]
Was ich mache ist: Ich lasse einen Test laufen:
response =
OrderNotifier.create_versanddienstleister_notification(@order)
Hat da jemand eine Idee? Wie kann man rxml-templates rendern, so dass
man den Text so bekommt und dann mit :body => … anhängen kann?
Für Vorschläge bin ich sehr dankbar,
LG
M.