url_for不尊重default_url_options

时间:2013-11-04 12:17:43

标签: ruby-on-rails ruby-on-rails-3 actionmailer host url-for

我想使用url_for的主机设置development.rb获取网址。但是不是这样,我得到www.example.com,它没有在应用程序的目录中的任何位置设置。

Connecting to database specified by database.yml
  MOPED: 127.0.0.1:27017 COMMAND      database=admin command={:ismaster=>1} (0.5023ms)
Loading development environment (Rails 3.2.13)
[1] pry(main)> ActionMailer::Base.default_url_options
=> {:host=>"asd:3000"}
[2] pry(main)> app.posts_url
=> "http://www.example.com/posts"
[3] pry(main)> 

有谁知道它的原因和来源?

2 个答案:

答案 0 :(得分:2)

我相信这就是rails从控制台输出数据的方式。我自己测试了它,在控制台中我得到了相同的东西:

[1] pry(main)> app.projects_url
=> "http://www.example.com/projects"

在我的development.rb文件中,我将主机指定为其他内容..

然而,在我的应用程序中,所有路径都会解析到正确的位置。

答案 1 :(得分:0)

您可以在ActionMailer下设置选项,因此它在控制台上下文中不起作用。

example.com只是Rails在空白时填空。

如果你想在development.rb中获取url(与控制台上下文相同),请在development.rb上添加它:

Rails.application.routes.default_url_options[:host] = "asd:3000"