2012-12-20 13 views
6

Chcę ustawić stałe przekierowanie każdej ścieżki zaczynającej się od /articles na analogiczną ścieżkę rozpoczynającą się od /blog.301 przekierowanie grupy powiązanych ścieżek w Railsach 3 trasach

Wiem, jak indywidualnie przekierowywać ścieżki na trasach, np.

match "/articles/" => redirect("/blog/")

Jednakże, jeśli chcę też przekierować ścieżki takie jak /articles/:id i /articles/category/:id itp, to muszę mieć wyraźne przekierowań dla tych, jak również.

Mam nadzieję, że istnieje sposób na przekierowanie wszystkich takich ścieżek, obecnych i przyszłych, za jednym zamachem.

Zdaję sobie sprawę, że mogłem to zrobić stosunkowo łatwo w kontrolerze z before_filter, ale uważam, że to zachowanie należy do tras i mam nadzieję, że go tam zatrzymam.

Odpowiedz

1
match '/articles(/*path)' => redirect { |params, req| "/blog/#{params[:path]}" } 
+0

Działa! Dziękuję Ci. – hoffm

0

Edit

Problemem było łapanie tras z parametrami, teraz powinno być rozwiązane

Po szynach prowadnic, tak aby zrobić należy:

match "/articles(/:action(/:id(.:format)))" => redirect {|p, req| "/blog/#{req.subdomain}" } 

Wyodrębniono z Redirection

Ja ho w tym pomaga!

+0

Żadna z tych opcji nie działa dla mnie. Pierwsza z nich dotyczy poprawnie '/ articles', ale nie pasuje do innych ścieżek zaczynających się od'/articles'. Drugi przekierowuje '/ articles' do'/blog/articles', a także nie pasuje do innych ścieżek zaczynających się od '/ articles' – hoffm

+0

Problem polegał na przechwyceniu tras parametrami, które teraz powinny zostać rozwiązane. Daj mi znać, jeśli masz zagnieżdżone trasy – felipeclopes

+0

jakiekolwiek wyniki z tego? – felipeclopes

Powiązane problemy