RubyOnRails:url_for应用程序根目录

时间:2010-10-07 15:40:19

标签: ruby-on-rails

我知道这样做

url_for(:only_path => false, :controller => 'home')

例如,我会得到 http:// localhost / home

但我如何处理生成 http:// localhost

4 个答案:

答案 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