在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。
我错过了什么?
答案 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)
我发现邮件浏览器中的拼写错误会导致此问题。错误消息具有误导性。