je sais que faireRubyOnRails: url_for racine de l'application
url_for(:only_path => false, :controller => 'home')
Je vais obtenir, par exemple, http: // localhost/home
Mais comment puis-je gérer à genereate http:// localhost
je sais que faireRubyOnRails: url_for racine de l'application
url_for(:only_path => false, :controller => 'home')
Je vais obtenir, par exemple, http: // localhost/home
Mais comment puis-je gérer à genereate http:// localhost
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'))
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
Vous pouvez également utiliser: ActionController :: Base. racine_url relative
soit #{ActionController::Base.relative_url_root}/images/my_img.jpg
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>
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