0

Railsでメールを送ろうとしています。コードは

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

  def send_password_reset(player)
    Rails.logger.info "Password email"
    @player = player
    delivery_options = { 
         user_name: 'sites.smtp@mymail.com',
         password: 'password',
         address: 'smtpout.secureserver.net' 
    }
    mail(to: player.email,
         subject: "Recover your Password.", 
         body: "Password email",
         delivery_method_options: delivery_options)
  end
end

コントローラ

if player.valid?
  player.send_password_reset_token #(Line: 209)
  render json: {SENT: 'YES'}
else
  render json: {error: "Player does not exist."}, status: :not_found
end

モデル

  def send_password_reset_token
    password_reset_token = SecureRandom.urlsafe_base64(nil, false)
    self.update_attribute(:password_reset_token, password_reset_token)
    UserMailer.send_password_reset(self).deliver #(line: 25)
  end

ロガーは言う

Sent mail to ranasaani@gmail.com (25ms)

Completed   in 433ms

NoMethodError (undefined method `encoding' for #<Hash:0x774b2d51>):
app/models/player.rb:25:in `send_password_reset_token'
app/controllers/players_controller.rb:209:in `password_forgot'

しかし、私は電子メールを受け取っていません。ここには方法がありませんencoding。次に、このエラーの原因は何ですか

4

1 に答える 1