2012-01-27 9 views
7

Czuję, że to może być głupie pytanie, ale jest późno, a moja głowa trochę się topi. Więc doceniam pomoc.Poprowadź kontroler do przestrzeni nazw: admin do/admin

Próbuję odwzorować adres URL http://localhost:3000/admin na kontroler deski rozdzielczej, ale mam epicką wadę. Może nie jest to nawet możliwe, lub całkowicie zły pomysł ale i tak moje drogi wygląda to i tak

namespace :admin do 
    resources :dashboard, { :only => [:index], :path => '' } 
    ... 
end 

i mój prosty dashboard_controller.rb

class Admin::DashboardController < ApplicationController 
    before_filter :authenticate_user! 
    filter_access_to :all 

    def index 
    @schools = School.all 
    end 
end 

i moim zdaniem znajduje się w widokach/admin /dashboard/index.html.erb

dzięki za każdym wejściem

Odpowiedz

9

Jeśli wszystko próbują zrobić to trasa /admin do tego kontrolera deski rozdzielczej, to jesteś na komplikując go, nazywając go w ten sposób.

przestrzeni nazw z zagnieżdżonego zasobu jak to oznaczałoby, że byłoby /admin/dashboards do działania zamiast czystego /admin trasę :index (i można sprawdzić, uruchamiając rake routes w wierszu polecenia, aby uzyskać listę swoich tras) .

Opcja 1: przeznaczona do przestrzeni nazw to tak

# putting this matched route above the namespace will cause Rails to 
# match it first since routes higher up in the routes.rb file are matched first 
match :admin, :to => 'admin/dashboards#index' 
namespace :admin do 
    # put the rest of your namespaced resources here 
    ... 
end 

Opcja 2: Nie chciałam przestrzeni nazw to tak

Szlaku:

match :admin, :to => 'dashboards#index' 

Kontroler:

# Remove the namespace from the controller 
class DashboardController < ApplicationController 
    ... 
end 

Odwiedzin powinny zostać przeniesione z powrotem do:

views/dashboards/index.html.erb 

Więcej informacji: http://guides.rubyonrails.org/routing.html

+0

Niż ks Robbed! Opcja 1 mnie poprawiła. –

+1

Działają one tylko w celu przypisania konkretnej ścieżki/administratora do konkretnego panelu # działań. Nie mapują również/admin /: action na dashboards #: action. – cilphex

0

Spróbuj tego:

namespace :admin do 
    root to: 'users#index' # whatever. Just don't start with /admin 
    #resources :dashboards <= REMOVE THIS LINE ! 
end 
Powiązane problemy