ruby-on-rails - Rails 5:将局部变量发送到邮件程序视图
问题描述
我正在像这样循环遍历一个集合:
<% @event_emails.each do |email| %>
<%= render file: "event_emails_mailer/#{email.code.downcase}", locals: { @body: "body" } %>
<% end %>
渲染正在寻找正确的视图,但@body
变量没有被传递。
我尝试了许多不同的语法来将@body 作为局部变量传递。我错过了一些明显的东西吗?
解决方案
事实证明,将本地参数传递给邮件程序视图并不像从常规控制器视图传递那样容易。
有效的解决方案是在循环中设置局部变量并删除 locals 参数,如下所示:
<% @event_emails.each do |email| %>
<% @body = email.body %>
<%= render file: "event_emails_mailer/#{email.code.downcase}" %>
<% end %>
推荐阅读
- postman - 邮递员收集异步运行
- tensorflow - 如何在 tensorfow keras 中添加 2 个模型路径?
- rest - 在浏览器和 NodeJS 或 curl 中使用 Stack Exchange API 时的不同数据格式
- html - HTML 视频在 iPhone 上不可见
- vue.js - 折线图不呈现数据
- asp.net-core - Strict-Transport-Security 标头没有价值
- grpc - 如何为 grpc-java 客户端指定 User-Agent 标头?
- algorithm - 如何找到从 2 到 N + 1 的组总数
- r - 如何在大数据集中找到 30 个最常见的值?
- c# - 在列名是动态 c# LINQ 的动态列表上实现多个“Where”条件