2016-05-10 19 views
2

Meine Website verwendete hier einen mobilen Blick hat:Umleitung in Rails 4 Routen

https://www.example.com/m/home 

Wir haben die mobilen Ansichten veralteten und jetzt brauche ich eine einfache Möglichkeit, die/m/aus der URL zu trimmen, so dass die Die Anfrage wird auf die richtige Seite weitergeleitet.

Beispiel:

https://www.example.com/m/about => https://www.example.com/about 
https://www.example.com/m/user/:id => https://www.example.com/user/:id 

Ich hoffe, dies in den Schienen zu lösen Routing ohne mit nginx eine neue Controller-Aktion oder einmischen einführen zu müssen. Ich habe 100+ Routen. Danke im Voraus.

Rails-Version: 4.2

Antwort

1

Es gibt eine redirection module (auch doc in the guide umgerechnet).

Etwas wie:

get '/m/about', to: redirect('/about') 
get '/m/user/:id', to: redirect('/user/%{id}') 

, die Sie mit route globbing für eine generische Lösung kombinieren können:

get '/m/*path', to: redirect('/%{path}') 
+0

ich über 100 Routen haben leider so ist dies nicht möglich. Vielen Dank! – Brit200313

+0

@ Brit200313 Ich habe gerade eine generische Lösung hinzugefügt. – igwan

+0

Perfekt. Vielen Dank! – Brit200313

0

Wie wäre es nur Ihre Routen ein wenig Refactoring:

Beispiel: Zurück routes.rb

resources :users 
# ... 

Nun wird es:

['m', ''].each do |sc| 
    scope sc do 
    resources :users 
    # ... 
    end 
end