Ruby 中使用 YAML 的多行和 HTML 输出

Multiline and HTML output with YAML in Ruby

我正在 Ruby 中实现 i18n,需要使用 html 标签制作多行文本以用于确认电子邮件(设计)。

我的 YAML 如下所示:

emails:
  reset_html: |
    <p>something goes here</p>
    <p>and here as new line</p>

然后在我的 reset_password_instructions.rb 我有:

= t('emails.reset_html')

输出:"Reset"

如果我将它作为纯文本(没有 "html" 后缀)- 它打印整个文本,但作为一行。

它似乎是按照 YAML 中描述的 Ruby 规范来实现的。

知道它为什么不起作用以及如何解决它吗? 也许更好的想法是如何为确认和通行证重置等标准消息制作多语言电子邮件模板?

谢谢!

我认为将 HTML 放入您的 I18n YML 文件中不是一个好主意。也许最好按照以下方式创建电子邮件视图:

devise/mailer/reset_password.haml

%p
  t('emails.reset.dear') #{@resource.name},

%p
  t('emails.reset.reset_requested')

%p 
  = link_to t('emails.reset.change_password'), "http://..."

en.yml

  en:
    emails:
      reset:
        dear: Dear
        reset_requested: You have requested a ...
        change_password: Change password here

(注意我添加了语言前缀)