wiem, że robiRubyOnRails: url_for korzenia aplikacji
url_for(:only_path => false, :controller => 'home')
dostanę np http: // localhost/home
ale w jaki sposób obsłużyć do genereate http:// localhost
wiem, że robiRubyOnRails: url_for korzenia aplikacji
url_for(:only_path => false, :controller => 'home')
dostanę np http: // localhost/home
ale w jaki sposób obsłużyć do genereate http:// localhost
W zależności od celów, istnieje kilka sposobów użycia nazwy serwera lub podstawowego adresu URL. W ogólnym przypadku: "Potrzebuję tylko niezawodnego podstawowego adresu URL, którego mogę użyć w dowolnym miejscu", używam metody konfiguracji.
# 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'))
dostać http://localhost, będziesz po prostu:
<%= link_to "Home", root_path %>
To będzie generować: <a href="/">Home</a>
które skutecznie odwołuje się do http://localhost
Można również użyć: ActionController :: Base. relative_url_root
czyli #{ActionController::Base.relative_url_root}/images/my_img.jpg
To stare pytanie, ale wciąż zajmuje wysokie pozycje w wyszukiwaniach. Obecnie użyj root_url.
np.
<%= link_to "fully qualified root", root_url %>
generuje
<a href="http://www.example.com/">fully qualified root</a>
być jasne, mapy root_path na "/", a mapy do absolutnego głównego root_url URL (na przykład "http: // localhost: 3000 /") – user456584