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

Rails调用UserMailer.welcome.deliver_now报错:未初始化常量UserMailer

解决UserMailer未定义及welcome方法不存在的问题

在控制台执行UserMailer.welcome.deliver_now时,先后遇到两个错误:

  • 先抛出welcome方法未定义的错误
  • 随后出现:(irb):6:in '<main>': uninitialized constant UserMailer (NameError),系统提示是否指UserMailerPreview

核心问题:邮件模板路径不符合Rails规范

Rails中ActionMailer的视图文件默认要求放在app/views/[mailer类名小写]/目录下,你当前把模板文件放在了app/user_mailer/,路径错误导致Mailer无法关联到对应的模板方法,同时控制台未重新加载代码时会触发常量未定义问题。

修复步骤:

  1. 调整模板文件位置
    创建app/views/user_mailer/目录(如果不存在),然后将以下两个文件移动到该目录下:

    • welcome_email.html.erb
    • welcome_email.text.erb
  2. 重新加载控制台代码
    在irb中执行reload!命令,或者退出控制台后重新进入,确保UserMailer类被正确加载。

  3. 验证修复效果
    再次执行UserMailer.welcome.deliver_now,即可正常调用方法并发送邮件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:45:28