Подтвердить что ты не робот

Rails/HAML: разрывы строк в текстовой почте

Я просто пытаюсь отформатировать шаблон почтовой программы, созданный haml (text), и у меня есть небольшая трудность получить его для чтения нескольких разрывов строк. Например: я бы подумал

Dear
= @user.name,

Your username is
= @user.username




Your status is
= @user.status

Я предположил, что разрывы в нескольких строках будут прочитаны, но строка "Ваш статус" выводится в строке непосредственно под именем пользователя. (Да, многие разрывы строк - это преувеличение того, сколько я хочу, но все же)

Итак, вопрос: Разрывы строк в текстовых сообщениях haml.... erm, how?

4b9b3361

Ответ 1

Попробуйте haml: простой помощник.

Dear
= @user.name,

Your username is
= @user.username
:plain



  Your status is
  = @user.status

* edit - вам нужно отложить текст haml, следующий за фильтром: plain, как обычно в haml.

Ответ 2

Вы также можете использовать \ или ==:

Dear
= @user.name,
\
Your username is
= @user.username
\
\
\
\
Your status is
= @user.status

У этого есть дополнительное преимущество, позволяющее использовать интерполяцию, тогда как использование фильтра :plain не будет.

Ответ 3

Я бы предположил, что использование haml для текстовых шаблонов ничего не добавляет и в большинстве случаев делает их более сложными, чем простые старые шаблоны erb. В конце концов, главная цель - сделать разметку простой и опустить необходимость закрытия тегов - это не относится к простому тексту.

Если вы отправляете многомильные электронные письма, ничего не мешает вам использовать html.haml для HTML-шаблонов и text.erb для простых текстовых сообщений, что сохранит ваши множественные разрывы строк:

Dear <%= @user.name %>,

Your username is <%= @user.username %>




Your status is <%= @user.status %>

Ответ 4

Рассмотрим другой подход HAML, который является более разборчивым.

Dear #{@user.name},

Your username is #{@user.username}
\
\
\
Your status is #{@user.status}

Имя файла будет выглядеть как mailer.text.haml

Ответ 5

Используйте тег %br для строки прерывания. Также вы можете использовать %p и %div и добавить немного css:)