NoMethodError未定义的方法邮件

时间:2012-07-03 09:16:38

标签: actionmailer ruby-on-rails-3.2

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

NoMethodError(#的未定义方法`mail'):

我的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。

我错过了什么?

5 个答案:

答案 0 :(得分:4)

我最近遇到了类似的问题并通过替换:

来纠正它
def self.activation_mail()

def activation_mail()

答案 1 :(得分: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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我发现邮件浏览器中的拼写错误会导致此问题。错误消息具有误导性。