Rails test env: зачем он нужен default_url_options для ActionMailer?

Почему в тестовой среде необходимо установить default_url_options для ActionMailer?

Если я не установлю это, я получаю это при выполнении моих спецификаций:

 ActionView::Template::Error:
   Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

Мне особенно интересно, потому что при установке

config.action_mailer.default_url_options = {host: 'localhost:3000'}

тогда теоретически ссылки в электронных письмах приведут к localhost:3000, который, насколько я знаю, не там, где действительно работает тестовый экземпляр сервера? Тем не менее, при использовании email_spec gem и нажав на ссылки в письмах, они работают, потому что gem удаляет имя сервера и порт, поэтому ссылка обычно выглядит так:

/en/user/confirmation?confirmation_token=QZu3tw17uozhpEfuVWzF

Итак, еще раз: зачем мне указывать хост, если он удален email_spec драгоценный камень в любом случае?

1 ответ

Вам это нужно, потому что вы генерируете URL-адреса в своей электронной почте, а ActionMailer нужен :host знать, как правильно построить URL. Тот факт, что email_spec удаляет его позже, не имеет значения.

Другие вопросы по тегам