未初始化的常量Mail :: Ruby19

时间:2012-11-23 16:21:15

标签: ruby-on-rails ruby actionmailer

嗨,有聪明的头脑,我在尝试运行此代码时遇到了这个问题。无法弄清楚。希望有人可以提供帮助。

这是针对“忘记密码”的重置邮件。

编辑:我已尝试重启应用程序几次。这不是造成这个问题的原因。

用户模型:

validations up here...

def generate_token(column)
  begin
    self[column] = SecureRandom.urlsafe_base64
  end while User.exists?(column => self[column])
end

def send_password_reset
  generate_token(:password_reset_token)
  self.password_reset_sent_at = Time.zone.now
  save!
  UserMailer.deliver_password_reset(self)
end

密码重置控制器:

def create
  user = User.find_by_email(params[:email])
  user.send_password_reset if user
  redirect_to signin_path, :notice => "Email sent with instructions."
end

用户邮件:

class UserMailer < ActionMailer::Base
  default from: "noreply@mysite.com"

  def password_reset(user)
    @user = user
    mail(:to => user.email, :subject => "Eventalist - Password Reset.")
  end
end

错误:

uninitialized constant Mail::Ruby19

app/mailers/user_mailer.rb:1:in `<top (required)>'
app/models/user.rb:19:in `send_password_reset'
app/controllers/password_resets_controller.rb:7:in `create'

This error occurred while loading the following files:
 mail

感谢任何帮助。

非常感谢

1 个答案:

答案 0 :(得分:0)

总结评论中的答案,以便从“未答复”过滤器中删除此问题:

Per Shamir K,UserMailer语法可能是可疑的。这是一个公平的观察 - 请注意原始海报使用的源材料:

RailsCast #274: Remember Me & Reset Password

话虽如此,original poster后来澄清说他的问题是一些缺失配置的结果:

  

这是一个错误。出于某种原因,当我生成邮件时,rails变得懒惰并且忘记了它通常做的一些配置。现在一切都很好。感谢