Как исправить ошибку 'render / 2 is undefined', используя Bamboo с Phoenix - PullRequest
6 голосов
/ 26 марта 2019

Я пытаюсь отправить электронное письмо с использованием html-шаблона электронной почты с Bamboo (и Amazon SES) для моего приложения Phoenix / Elixir

Мне удалось успешно отправить электронную почту с использованием |> text_body(message) Bambooметод.Однако теперь я хочу иметь возможность отправлять html-шаблон, а не просто строку, поэтому я пытаюсь использовать render fn https://hexdocs.pm/bamboo/1.1.0/Bamboo.Phoenix.html#render/3, но у меня возникает следующая ошибка: function MyApp.HtmlEmailView.render/2 is undefined (module MyApp.HtmlEmailView is not available).Я не получаю сообщение об ошибке, когда использую text_body fn.

Это мой fn:

  def send_test_html_email(to_email_address, subject) do
    new_email()
    |> from("myemail@gmail.com")
    |> to(to_email_address)
    |> subject(subject)
    |> render("email.html")
  end

, и это пример fn из документов:

  def html_email do
    new_email
    |> render("html_email.html")
  end

Я не вижу никакой разницы, и, как я уже упоминал ранее, остальная часть fn работала нормально с text_body в качестве последней строки вместо render.

Мой ожидаемый результат:что письмо отправит без ошибок.Мой фактический результат - ошибка function MyApp.HtmlEmailView.render/2 is undefined (module MyApp.HtmlEmailView is not available).

1 Ответ

0 голосов
/ 27 марта 2019

Спасибо Джастину Вуду и Милану Ярику за ваши комментарии.

Я использовал: use Bamboo.Phoenix, view: MyApp.HtmlEmailView в верхней части моего модуля, однако ошибка была вызвана, поскольку view: MyApp.HtmlEmailView должно быть view: MyAppWeb.HtmlEmailView. Это решило проблему. Спасибо за вашу помощь.

...