action_mailer.default_url_options not defined in staging?
When deployed on Heroku with
ActionView::Template::Error
RAILS_ENV=
staging
, the "Forgot password" page (/users/password/new) returns an error 500:ActionView::Template::Error
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
from
app/views/devise/mailer/reset_password_instructions.html.erb
at line 5
:<p><%= link_to t('.action'), edit_password_url(@resource, reset_password_token: @token) %></p>
---
This works fine in development and in production however, so it seems closely related to the
staging
environment.For development:
action_mailer.default_url_options[:host]
is set in config/environments/development.rb:config.action_mailer.default_url_options = {host: "lvh.me", port: ENV.fetch("PORT", 3000).to_i}
For production:
config/initializers/mail.rb seems to set
default_url_options[:host]
as well:if Rails.env.production? ActionMailer::Base.default_url_options[:host] = Jumpstart.config.domain
For staging:
Should I manually edit config/environments/staging.rb to add this?
config.action_mailer.default_url_options = {host: "lvh.me", port: ENV.fetch("PORT", 3000).to_i}
Or should I edit config/initializers/mail.rb like this?
if Rails.env.production? || Rails.env.staging?
Thanks!
Notifications
You’re not receiving notifications from this thread.