2013-02-26 5 views
5

sto usando di Mandrillo Rubino API Gem e hanno il semplice modello per il test seguire:Mandrillo Templating API

<html> 

    <body> 
     <h1 mc:edit="header">testastic</h1> 
     <hr/> 
     <br/><br/> 
     <div mc:edit="main_section"></div> 
     <hr/> 
     <div mc:edit="footer"></div> 
    </body> 
</html> 

Seguendo l'esempio sulla guida di Heroku Ho il codice Ruby seguire:

require 'mandrill' 
    m = Mandrill::API.new 
    rendered = m.templates.render 'test-template', [{:header => 'some header text', :main_section => 'The main content block', :footer => '<h3>asdf</h3>'}] 

    mail(:to => "Jayson Lane <[email protected]>", :subject => "Test Email") do |format| 
     format.html { rendered['html'] } 
     #format.text { render "test" } 
    end 

Funziona benissimo e l'email invia il mio modello perfettamente, tuttavia, non sostituisce il modello mc: modifica variabili. Mi sto perdendo qualcosa?

risposta

9

È necessario creare un hash per ogni elemento che si sta tentando di sostituire. Per esempio, ho questo all'interno di un modello:

<h3 mc:edit="plan_info_name"> </h3> 
    <span mc:edit="plan_info_description"> </span> 
    <span mc:edit="plan_info_benefits"> </span> 

E questo sul mailer:

mandrill.messages.send_template(template,[ 
    { 
    :name => 'plan_info_name', 
    :content => extra[:membership_info].name 
    }, 
    { 
    :name => 'plan_info_description', 
    :content => extra[:membership_info].long_description 
    }, 
    { 
    :name => 'plan_info_benefits', 
    :content => benefits_list 
    } 
    .... 
+0

impressionante! Grazie! –