2012-10-18 29 views
6

Przeanalizowałem wiele rozwiązań błędów opisanych w tytule.Subdomeny + ActionView :: Szablon :: Błąd (brak hosta do połączenia!)

ActionView::Template::Error (Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true):

Jednak projekt ten został również zmodyfikowany url_for funkcję do korzystania z subdomen, jak widać w tym railscast:

http://railscasts.com/episodes/221-subdomains-in-rails-3

Więc tradycyjne odpowiedzi na ten błąd, taki jak ustawienie zmiennych w moich ustawieniach środowiska nie wydaje się być rozwiązaniem.

Oto kilka podpowiedzi:

  • Jest to zupełnie nowy obiekt położony w górę, właśnie sklonowany projekt i zainstalowane rubin, szyny, kamienie, itp
  • próbowałem „RVM implozji” i począwszy od wielu czasów
  • reszta zespołu zazwyczaj rozwija się lokalnie na Macach, podczas gdy ja rozwijam się na komputerze Ubuntu zdalnie.
  • pracuję jako administrator (ma to znaczenie?)

Zakończony 500 Internal Server Error w 1889ms

ActionView :: Template :: Error (Missing gościć odwołuje się do proszę podać: parametr host, ustaw default_url_options [: host] lub ustaw: only_path na true): 1:% header.menu {: role => "banner"} 2: .col980 3:% h1 4:% a. logo {: href => root_url ({: subdomain => false})} 5: -if current_user.premium? 6:% IMG {: Alt => "contently": src => „/images/logo_beta_premium.png"}/ 7: -else APP/pomocników/url_helper.rb: 16: w url_for' app/views/shared/_logged_in_writer_nav.html.haml:4:in _app_views_shared__logged_in_writer_nav_html_haml__656388632_107925510' aplikacja /views/layouts/application.html.haml:35:in block in _app_views_layouts_application_html_haml__193634629_107212530' app/helpers/application_helper.rb:15:in html5_haml_tag ' app/views/układy/application.html.haml: 2: w _app_views_layouts_application_html_haml__193634629_107212530' app/controllers/application_controller.rb:18:in ERROR_GENERIC'

Odpowiedz

6

problemem jest to, że używasz URL pomocnika bez podawania domyślnego hosta dla aplikacji. Magia *_url polega na tym, że zwraca link wraz z linkiem podstawowym w łączu.

Na przykład, jeśli domyślny hosta url jest example.com:

> link_to "All Blogs", root_url(:subdomain => false) 
#=> <a href="http://example.com/">All Blogs</a> 

można skonfigurować hosta domyślnie w config/environments/*.rb plików dodając poniższe linie na końcu pliku konfiguracyjnego środowiska you” ponownie w

config.before_initialize do                                                  
    MyApp::Application.routes.default_url_options[:host] = 'myapp.com' 
end 

Edit.

można całkowicie uniknąć tego problemu za pomocą *_path

> link_to "All Blogs", root_path 
#=> <a href="/">All Blogs</a> 
Powiązane problemy