2012-05-30 31 views
7

Mevcut "game" routing'u route.rb içinde değiştirmek istiyorum, ancak SEO nedeniyle eski bağlantılar için 301 yönlendirmesini de ayarlamam gerekiyor.Ruby on Rails - route.rb içinde 301 yönlendirmesi içine paramları geçen

Eski yönlendirme:

match 'games/:permalink/:id/(:page)' => 'games#show' 

Yeni yönlendirme:

İşte
match 'gierki/:permalink/(:page)' => 'games#show' 

Denedim yönlendirme yapmak için olduğu: yönlendirme Üstü

match 'games/:permalink/:id/(:page)' => redirect {|params| "/gierki/#{params[:permalink]}" + params[:page].nil? ? "" : "/#{params[:page]}" } 

çalışmıyor, burada bir hata:

bunu böyle yapma
+0

Yönlendirme sırasında hata oluştuğundan emin misiniz? – zsquare

+0

Eminim, aşağıda cevap harika çalıştı. – Arti

cevap

9

Dene:

match 'games/:permalink/:id/(:page)' => redirect {|params,request| "/gierki/#{params[:permalink]}" + params[:page].nil? ? "" : "/#{params[:page]}" } 

Ve çalışıp çalışmadığına bakın.

+0

Çalıştı! Teşekkürler Maurício! – Arti

+0

Bu, 301 ile nasıl yönlendirilir? –

+1

@ChristianFazzini Bkz. Http://guides.rubyonrails.org/routing.html#redirection - yönlendirme yönlendirmesi 301'dir. –