2013-02-15 20 views
9

W przeciwieństwie do większości zwykłych wiadomości tekstowych związanych z e-mailem, moim problemem jest to, że istnieje zbyt wiele przerw w wierszach w zwykłym tekście wiadomości e-mail Rails jest wysyłany.Jak kontrolować podziały wierszy w widokach wiadomości tekstowych w formacie tekstowym (.text.erb)

Dla uproszczenia podczas uruchamiania całkowicie porzuciłem wiadomości HTML i używam zwykłych wiadomości tekstowych (przy użyciu widoków .text.erb). Moje problemy występują, gdy mam linie warunkowe w widoku, ponieważ nowa linia kodu w moim pliku widoku przenosi się na wiadomość e-mail.

Na przykład:

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

uczyni jako:

Line 1 

    Line 3 

a nie zamierzonego wyjścia:

Line 1 
    Line 3 

Mój obecny Hack jest skorzystanie z następujących powodów:

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

To może stać się naprawdę nieprzyjemne, gdy istnieje wiele warunków warunkowych z rzędu.

Z pewnością musi istnieć lepszy sposób!

Odpowiedz

3

Jeśli kończy tagów ERB z -%> że należy unikać obcego spacje:

<%= "foo" -%> 
+0

Czy muszę zrobić '<% = "foo \ n", czy coś -%>' gdybym chciał nową linię * * wtedy i tylko wtedy, gdy ** tekst zostanie wstawiony? – Felix

+0

Myślę, że jest to czystszy sposób, aby to zrobić, zobacz moją odpowiedź. –

4

to odpowiedzi na pytanie Felixa”na odpowiedź Andy Waite (nie sądzę kod multi-line jest możliwe w komentarze i to jest o numerze wieloliniowym).

myślę <%= "foo\n" if something -%> będzie działać, ale to wydaje się czystszy do mnie:

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