为什么测试环境需要为ActionMailer设置default_url_options?
如果我没有设置它,我在执行我的规范时会得到这个:
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
gem删除了主机,我还需要指定主机?
答案 0 :(得分:1)
您需要它,因为您在电子邮件中生成URL,而ActionMailer需要:host
知道如何正确构建URL。 email_spec稍后删除它的事实是无关紧要的。