2010-10-07 5 views

Répondre

11

En fonction de vos objectifs, vous pouvez utiliser le nom de serveur ou l'URL de base de plusieurs façons. Dans le cas général, «j'ai juste besoin d'une URL de base fiable que je peux utiliser n'importe où», j'utilise la méthode config.

# 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')) 
12

pour obtenir http://localhost, vous aurez simplement:

<%= link_to "Home", root_path %> 

Ce générerons: <a href="/">Home</a> qui reliera efficacement à http://localhost

+0

Pour être clair, les cartes de root_path à "/", tandis que les cartes de root_url à l'URL racine absolue (par exemple "http: // localhost: 3000 /") – user456584

2

Vous pouvez également utiliser: ActionController :: Base. racine_url relative

soit #{ActionController::Base.relative_url_root}/images/my_img.jpg

8

Il s'agit d'une vieille question, mais elle occupe toujours une place importante dans les recherches. Actuellement, utilisez root_url.

par exemple.

<%= link_to "fully qualified root", root_url %> 

générerons

<a href="http://www.example.com/">fully qualified root</a> 
Questions connexes