2013-02-15 17 views
9

A differenza della maggior parte delle e-mail di testo, il mio problema è che ci sono troppe interruzioni di riga nelle e-mail in chiaro che Rails sta inviando.Come controllare le interruzioni di riga nelle viste e-mail in testo semplice (.text.erb)

Per semplicità durante l'avvio, ho eliminato le e-mail HTML del tutto e basta usare e-mail di testo in chiaro (utilizzando le visualizzazioni .text.erb). I miei problemi si verificano in cui sono presenti linee condizionali nella vista, poiché la nuova riga di codice nel file di visualizzazione viene trasferita all'e-mail.

Ad esempio:

Line 1 
    <%= "Line 2" if false %> 
    Line 3 

renderanno come:

Line 1 

    Line 3 

e non l'uscita prevista:

Line 1 
    Line 3 

mio mod attuale è quella di utilizzare il seguente:

Line 1 
    <%= "Line 2\n" if false %>Line 3 

Questo può diventare davvero complicato quando ci sono più condizionali di fila.

Sicuramente ci deve essere un modo migliore!

risposta

3

Se si finisce i tag ERB con -%> che dovrebbero evitare gli spazi estranei:

<%= "foo" -%> 
+0

avrei bisogno di fare '<% = "foo \ n" se qualcosa -%>' se volevo la nuova linea * * se e solo se ** il testo è inserito? – Felix

+0

Penso che ci sia un modo più pulito per farlo, vedi la mia risposta. –

4

Questo è quello di rispondere alla domanda Felix' sulla risposta di Andy Waite (non credo codice multi-linea è possibile in commenti e questa domanda è sul codice multi-linea).

Penso <%= "foo\n" if something -%> avrebbe funzionato, ma questo sembra più pulito per me:

Line 1 
<% if something -%> 
foo 
<% end -%> 
Line 3 
Problemi correlati