正如标题所暗示的,当我尝试在我的邮件模板中使用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
我尝试按照说明操作,我也找到this post,但我仍然收到错误。
我已尝试将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中有什么变化使得这项工作有所不同吗?
答案 0 :(得分:36)
前几天我遇到了这个问题,这就是为我工作的原因:
Rails.application.routes.default_url_options[:host] = '???'
修改强>
这可以在每个环境文件中使用development.rb
,test.rb
和production.rb
(如果有的话,还有更多),每个环境文件中都有相应的主机名
答案 1 :(得分:9)
您必须在每个环境中设置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'