Problem ze ścieżkami (routes)

Witam,

Mam taki plik routes.rb:

Rails.application.routes.draw do
  scope '(:locale)' do
    scope ':admin' do
      get '/', controller: 'admin', action: 'index', as: :admin
      # inne ścieżki
    end
    root 'pages#show', path: '(:id)'
  end
end

Więc pokolei chcę uzykać taki efekt:

  1. Wchodząc na stronę (:locale)(/:id) ma wczytać się strona z odpowiednią treścią. Gdy nie ma id to wczytuje stronę domyślną.
  2. Parametr :admin służy do dynamicznego ustalenia nazwy ścieżki do panelu zarządzania, czyli może on np. przyjąć nazwę admin, dashboard itd. - to będzie zależeć od użytkownika. Więc wchodząc na stronę (:locale)/:admin/ będę miał panel zarządzania.

Problem polega na tym, że railsy nie potrafią rozpoznać czy wczytać stronę czy panel zarządzania. Aktualnie wczytuje się poprawnie panel zarządzania. Poprzednio miałem wersję bez dynamicznej nazwy panelu zarządzania i działało, ponieważ było to unikalne słowo.

Mam taki pomysł: w ApplicationController mam metodę before_filter, która rozpoznaje czy parametrem jest admin czy id. Problem polega na tym, że nie wiem, jak wczytać konkretny kontroler w danym przypadku.

Z góry dziękuję za pomoc i pozdrawiam,
brando.

Problem rozwiązany. Użyłem parametru constraints.