ROR: Что вызывает неинициализированную константу - PullRequest
0 голосов
/ 06 мая 2019

Мне пришлось обновить с Sendgrid V2 до V3. Я использую гем Sendgrid-ruby 5.3.

Я получаю эту ошибку

NameError (uninitialized constant PasswordController::Email):
app/controllers/password_controller.rb:54:in `send_email' 
May 06 08:57:01 burro-staging app/web.1: ArgumentError (wrong number of arguments (given 1, expected 0)):

Вот строка, вызывающая проблему (2-я строка ниже).

  mail = SendGrid::Mail.new
  mail.from = Email.new(email: 'no-reply@getburro.com') <-----

1 Ответ

3 голосов
/ 06 мая 2019

Ruby ищет класс Email и не может его найти. Причина в том, что Email принадлежит модулю Sendgrid и должна иметь следующую область:

Sendgrid::Email.new ...

как можно увидеть здесь:

https://github.com/sendgrid/sendgrid-ruby/blob/9dd0cf6c9eb7ecc1e4fe2824f9638468ab5fc818/lib/sendgrid/helpers/mail/email.rb

module SendGrid
  class Email

    attr_accessor :email, :name

    def initialize(email: nil, name: nil)

...

И из документов: https://github.com/sendgrid/sendgrid-ruby#with-mail-helper-class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...