You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 5种子数据库mail_to地址转换报错问题求助

Rails 5中mail_to标签的语法修正方案

嘿,我帮你排查下这个语法错误的问题~你代码里的核心问题是在ERB标签中嵌套了多余的<%= %>,导致Rails无法正确解析Ruby代码。我结合你的使用场景,给你两种正确的写法:

场景1:展示单个管理员的资料(@admin是单个实例)

从你最初的代码<h4><%= @admin.email %></h4>来看,@admin应该是单个Admin对象(比如在show页面),这种情况不需要用each循环,直接替换成mail_to方法即可:

<h4><%= mail_to @admin.email, @admin.email %></h4>

甚至可以简化写法——当mail_to只传一个参数时,会自动把邮箱地址作为链接显示文本:

<h4><%= mail_to @admin.email %></h4>

场景2:展示多个管理员的列表(@admin是集合)

如果你确实需要遍历多个管理员(比如index页面),那each循环是对的,但要去掉嵌套的<%= %>标签——在ERB的<%= %>内部,直接写Ruby变量即可,不需要再套一层输出标签:

<% @admin.each do |agent| %>
  <h4><%= mail_to agent.email, agent.email %></h4>
<% end %>

为什么你的代码会报错?

你原来的代码里写了mail_to <%= agent.email %>,这相当于在Ruby代码中又插入了一个ERB输出标签,这是语法错误。ERB的<%= %>本身就是用来执行Ruby代码并输出结果的,内部属于Ruby代码环境,直接使用agent.email这个变量就可以了,不需要额外嵌套<%= %>。

内容的提问来源于stack exchange,提问作者Boucherie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:22:59