2

このコードを実行しようとしたときに、これに遭遇しました。それを理解することはできません。誰かが助けてくれることを願っています。

「パスワードを忘れた」リセットメール用です。

編集:アプリを数回再起動しようとしました。それは問題の原因ではありません。

ユーザーモデル:

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

どんな助けでも大歓迎です。

どうもありがとう

4

1 に答える 1

0

この質問を「未回答」フィルターから削除するために、コメントからの回答を要約します。

Shamir Kによると、 UserMailerの構文が疑わしい可能性があります。これは公正な観察です。元のポスターで使用されたソース資料は次のとおりです。

RailsCast #274: パスワードを記憶してリセットする

そうは言っても、元の投稿者は後に、彼の問題は構成の欠落の結果であることを明らかにしました。

バグでした。なんらかの理由で、メーラーを生成したときに、レールが怠惰になり、通常行う構成の一部をドーミングするのを忘れていました。今は大丈夫です。ありがとう

于 2013-10-09T05:23:29.030 に答える