Rails 5:将本地变量发送到邮件视图

时间:2018-10-06 00:40:23

标签: ruby-on-rails

我正在遍历这样的集合:

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

渲染器找到了正确的视图,但是没有传递@body变量。

我尝试了多种不同的语法来将@body作为局部变量传递。我缺少明显的东西吗?

1 个答案:

答案 0 :(得分:0)

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

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

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