2010-09-01 16 views
41

Wielu moich użytkowników nadal prowadzi do adresu URL aplikacji http://(rails/blog, ale w rzeczywistości nie mam bloga. W końcu utworzyłem afiszowy blog, a teraz chcę skierować tam moich użytkowników. Czy istnieje sposób konfiguracji tego przy użyciu routes.rb? Czy istnieje lepszy sposób, który nie wymaga edycji pliku httpd.conf?Tworzenie trasy do zewnętrznego adresu URL

Odpowiedz

57

Zależy od używanej wersji Rails.

szyn 3

# in routes.rb 
match "/blog" => redirect("http://example.com/blog"), :as => :blog 

szyn 2

# in routes.rb 
map.blog '/blog', 
    :controller => "a_helper_controller", 
    :action => "redirect_to_blog" 

# in a_helper_controller.rb 
def redirect_to_blog 
    redirect_to "http://example.com/blog" 
end 
+0

Dzięki za to. Wszelkie sugestie na temat kontrolera, który ma go umieścić, lub co wymienić na nowy kontroler pomocniczy? –

+1

Co zrobić, jeśli chcesz użyć target = "_ blank" w swojej trasie? Można określić trasę taką jak ta: def external_url(); "http://example.com/blog"; koniec zdefiniowany w routes.rb? Myślę, że jedynym rozwiązaniem dla nich jest zdefiniowanie ich jako pomocników. – tothemario

+0

Dziękuję bardzo! –

58

wiem, że to jest stary, więc na wszelki wypadek ktoś potrzebuje to na szynach 4:

get "/blog" => redirect("http://example.com/blog") 

Zamiast polecenia Dopasuj w Railsach 4 uzyskujesz błąd Runtime

+0

Wydawało się, że to działa, ale mam problem od klienta korzystającego z przeglądarki internetowej: Stowarzyszenie plików Typ MIME: application/json, system Windows nie rozpoznaje tego typu MIME. – user1434177

+0

Bardzo pomocne dla tego, nad czym właśnie pracowałem. Dziękuję Ci bardzo! – kdweber89

+0

Czy ktoś wie, jak to zrobić w szynach 5? Wygląda na to, że nie działa tak, jak to było w Railsach 4, ale nie mogę znaleźć zasobów na ten temat na szynach 5. Ciągle otrzymuję 404. – JohnSalzarulo

Powiązane problemy