ActionView :: Template ::错误:缺少要链接的主机

时间:2013-09-11 13:36:49

标签: ruby-on-rails ruby ruby-on-rails-4

正如标题所暗示的,当我尝试在我的邮件模板中使用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中有什么变化使得这项工作有所不同吗?

2 个答案:

答案 0 :(得分:36)

前几天我遇到了这个问题,这就是为我工作的原因:

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

修改

这可以在每个环境文件中使用development.rbtest.rbproduction.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'