RubyOnRails: url_for principale dell’applicazione

so che fare

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

Voglio ottenere, per esempio, http://localhost/home

Ma come faccio a gestire per genereate http://localhost

InformationsquelleAutor bonfo | 2010-10-07



4 Replies
  1. 13

    per ottenere http://localhost, dovrete semplicemente:

    <%= link_to "Home", root_path %>

    Che verrà generato: <a href="/">Home</a> che effettivamente i link per http://localhost

    • Per essere chiari, root_path mappe “/” mentre il metodo root_url mappe per l’assoluta URL principale (ad esempio, “http:// localhost:3000/”)
  2. 11

    A seconda di cosa i vostri obiettivi sono, ci sono un paio di modi per utilizzare il nome del server o URL di base. Per il caso generale di, “ho solo bisogno di un affidabile URL di base che posso usare ovunque”, io uso la config metodo.

    # 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'))
  3. 11

    Questa è una vecchia questione, ma ancora non si colloca in alto nelle ricerche. Attualmente, utilizzare il metodo root_url.

    ad esempio

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

    genererà

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

    Si può usare anche:
    ActionController::Base.relative_url_root

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

Lascia un commento