代码之家  ›  专栏  ›  技术社区  ›  brianrhea

Rails5:将局部变量发送到mailer视图

  •  -1
  • brianrhea  · 技术社区  · 6 年前

    <% @event_emails.each do |email| %>
      <%= render file: "event_emails_mailer/#{email.code.downcase}", locals: { @body: "body" } %>
    <% end %>
    

    渲染正在找到正确的视图,但是 @body 未传递变量。

    1 回复  |  直到 6 年前
        1
  •  0
  •   brianrhea    6 年前

    事实证明,将本地参数传递到mailer视图并不像从常规控制器视图传递那么容易。

    有效的解决方案是在循环中设置局部变量并删除locals参数,如下所示:

    <% @event_emails.each do |email| %>
      <% @body = email.body %>
      <%= render file: "event_emails_mailer/#{email.code.downcase}" %>
    <% end %>