2012-01-27 7 views
7

Mi sembra che questa potrebbe essere una domanda stupida, ma è tardi e la mia testa si sta sciogliendo un po '.. Quindi apprezzo l'assistenza.Instradare un controller allo spazio nomi: admin a/admin

Sto provando a mappare l'url http://localhost:3000/admin a un controller del cruscotto, ma sto fallendo in modo epico. Forse questo non è nemmeno possibile o l'idea completamente sbagliata, ma in ogni caso i miei percorsi assomiglia a questo e sì

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

e la mia semplice dashboard_controller.rb

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

    def index 
    @schools = School.all 
    end 
end 

e la mia vista si trova in vista/admin /dashboard/index.html.erb

grazie per ogni ingresso

risposta

9

Se tutti si sta cercando di fare è rotta /admin a tale controller cruscotto, allora sei nel corso complicandolo con il namespace in quel modo.

namespacing con una risorsa nidificato del genere significherebbe che sarebbe /admin/dashboards per la :index azione invece di avere un ambiente pulito /admin percorso (e si può verificare che eseguendo rake routes nella riga di comando per ottenere un elenco delle vie aeree) .

Opzione 1: è pensato per namespace in quel modo

# 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 

Opzione 2: Non volevi in ​​spazi dei nomi in quel modo

Percorso:

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

Controller:

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

Visualizzazioni devono essere spostati di nuovo a:

views/dashboards/index.html.erb 

Maggiori informazioni: http://guides.rubyonrails.org/routing.html

+0

Than ks Robbed! L'opzione 1 mi ha risolto. –

+1

Questi funzionano solo per mappare il percorso/l'amministratore specifici nell'indice # degli dashboard di azione specifici. Non mappano anche/admin /: action to dashboards #: action. – cilphex

0

Prova questa:

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