Action Mailer 'неопределенный метод `[]' для nil: NilClass ' - PullRequest
0 голосов
/ 07 января 2019

Я получаю сообщение об ошибке при попытке отправить письмо. Не уверен, почему, но вот мой код в моем контроллере и почтовом

Вот код моего контроллера ниже

class Invitation::InvitesController < ApplicationController

def invite_provider
      @patient = Patient.find_by_id(invite_params[:invitable_id])
      recipient = params[:email]
      InviteMailer.provider_invite(recipient).deliver_now
      flash[:success] = "An email has been sent to"
      redirect_back(fallback_location: root_path)
    end

end

Вот мой почтовый код

class InviteMailer < ApplicationMailer
def provider_invite(recipient)
    @recipient = recipient
    mail(
      to: recipient[:email],
      subject: I18n.t('provider_invite_subject')
    )
  end
end

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Вы позвонили InviteMailer.provider_invite(recipient), где получатель email внутри контроллера.

Вы можете изменить в контроллере,

InviteMailer.provider_invite(email: recipient)

, а затем,

class InviteMailer < ApplicationMailer
  def provider_invite(attr)
    @recipient = attr[:email]
    mail(
      to: @recipient,
      subject: I18n.t('provider_invite_subject')
    )
  end
end

И ошибка из-за того, что в ваших параметрах нет ключа электронной почты, поэтому получатель не прошел через контроллер

0 голосов
/ 07 января 2019

При звонке на mail, в опции to, вы в основном отправляете params[:email][:email]. Я не думаю, что ты этого хочешь.

recipient = params[:email]

, а затем

to: recipient[:email],
...