2011-01-03 5 views
8

Ich verwende this Rails Guide, um einen Bereich zu erstellen, um ein "/ admin" Präfix für einige Controller zu erstellen.Rails 3 Routing - So verwenden Sie den Bereich zum Erstellen von Admin-Präfix

So habe ich einen Controller namens Pages, ich möchte es über "/ admin/pages" zugreifen.

Das funktioniert gut, aber es ist immer noch über "/ pages" ... Wie kann ich das verhindern? (Ich bin mit Rails 3)

Hier ist meine Routen-Datei:

devise_for :users 

scope "/admin" do 

    resources :pages 

    resources :contents 

end 

root :to => "index#index" 

match ':controller(/:action(/:id(.:format)))' 

Antwort

7

Ihre Syntax für den Namespace ist richtig, aber Sie müssen das Catch-All Spiel aus der letzten Zeile entfernen, weil nach die Standard-routes.rb Datei,

# This is a legacy wild controller route that's not recommended for RESTful applications. 
# Note: This route will make all actions in every controller accessible via GET requests. 

Wenn die angeforderte URL nicht den Namespace Sie erklärt hat, übereinstimmt, wird es noch gegen die am Ende CatchAll-Route anzeigen lassen.

+0

Danke für die schnelle Antwort. Ja, sicher. Ich bin ein Rails Newb, also vermisse ich wahrscheinlich etwas Einfaches. Die Routen funktionieren, aber die alten Routen funktionieren immer noch, was ich nicht will. – jyoseph

+1

Hmm ... Ich habe es gerade versucht, also sollte es so funktionieren wie es ist. Hast du den Webserver neu gestartet? Im Entwicklungsmodus sollten Sie nicht neu starten müssen, aber es ist einen Versuch wert. Können Sie Ihre routes.rb-Datei posten? –

+0

Aktualisierter Post mit Routes-Datei. Danke für die Hand! (Ich habe auch Routen geharkt und den Server neu gestartet) – jyoseph

0

Versuchen Sie, diese funktionieren sollte:

scope "/admin", as: :admin do 
    resources :pages 
end 
Verwandte Themen