9

在 Ruby on rails (3.2.6) 中设置邮件程序 (3.2.6) 后,我收到此错误:

NoMethodError(# 的未定义方法“邮件”):

我的 user_mailer.rb 看起来像这样:

class UserMailer < ActionMailer::Base
  default :from => "test@test.com"

  def activation_mail(user)
    @user = user
    mail(:to => user.mail, :subject => "Registration")
  end
end

我遵循此处提供的示例:http: //guides.rubyonrails.org/action_mailer_basics.html

在配置文件中,我添加了这一行: config.action_mailer.delivery_method = :test 我还尝试了 :smtp 和 gmail 配置。

我错过了什么?

4

5 回答 5

4

我最近遇到了类似的问题,并通过替换来纠正它:

def self.activation_mail()

def activation_mail()
于 2014-03-20T10:18:05.943 回答
3

你应该尝试更换

def activation_mail(user)
    @user = user
    mail(:to => user.mail, :subject => "Registration")
  end

def activation_mail(user)
    @user = user
    mail(:to => @user.mail, :subject => "Registration")
  end
于 2014-01-22T18:14:34.003 回答
2

这是一个拼写错误。您的user.mail不存在。也许它应该是user.email或其他东西。

于 2013-01-01T17:51:03.217 回答
0

我敢打赌,您传递的“用户”对象要么是 1) 未正确实例化,要么是 2) 数组而不是单个用户对象

于 2012-10-11T20:36:56.823 回答
0

我发现您的邮件视图中的拼写错误可能会导致此问题。错误消息具有误导性。

于 2016-11-28T15:22:32.450 回答