我知道这样做
url_for(:only_path => false, :controller => 'home')
例如,我会得到 http:// localhost / home
但我如何处理生成 http:// localhost
答案 0 :(得分:13)
获取http://localhost,您只需:
<%= link_to "Home", root_path %>
这将生成:<a href="/">Home</a>
,它将有效链接到http://localhost
答案 1 :(得分:11)
根据您的目标,有几种方法可以使用服务器名称或基本URL。对于一般情况,“我只需要一个可以在任何地方使用的可靠基本URL”,我使用配置方法。
# via routes.rb
map.root :controller => "foo", :action => "bar"
# view/controller:
root_url # inflexible. root_url will only ever be one URL
# via request object
url_for("http://"+request.host) # not available in models
# via config file (see railscast 85)
# environment.rb
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]
# config/config.yml
development:
server_name: localhost:3000
production:
server_name: foo.com
# view/controller:
url_for(APP_CONFIG('server_name'))
答案 2 :(得分:11)
这是一个老问题,但在搜索中仍然排名很高。目前,请使用root_url。
e.g。
<%= link_to "fully qualified root", root_url %>
将生成
<a href="http://www.example.com/">fully qualified root</a>
答案 3 :(得分:2)
您还可以使用: 的ActionController :: Base.relative_url_root
即。 #{ActionController::Base.relative_url_root}/images/my_img.jpg