ActionView:: Template:: Ошибка: Отсутствует хост для ссылки на

Как следует из названия, я получаю эту ошибку, когда пытаюсь использовать link_to в моих шаблонах почтовой программы:

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: 'example.com' } в каждый из следующих файлов, и никто из них не работал:

/config/environment.rb
/config/application.rb (inside the module for my app)
/config/development.rb (I'm in development mode)

Что-то изменилось в Rails 4, что делает эту работу по-другому?

Ответы

Ответ 1

Я столкнулся с этой проблемой на днях, и вот что закончилось для меня:

Rails.application.routes.default_url_options[:host] = '???'

изменить

Это относится к каждому файлу среды - development.rb, test.rb и production.rb (и больше, если у вас есть) с соответствующим именем узла в каждом

Ответ 2

Вы должны установить default_url в каждой среде (разработка, тестирование, производство).

Вам нужно внести эти изменения.

    config/environments/development.rb
     config.action_mailer.default_url_options = 
      { :host => 'your-host-name' }  #if it is local then 'localhost:3000'

 config/environments/test.rb
      config.action_mailer.default_url_options = 
      { :host => 'your-host-name' }  #if it is local then 'localhost:3000'

  config/environments/development.rb
     config.action_mailer.default_url_options = 
      { :host => 'your-host-name' }  #if it is local then 'localhost:3000'