2011-01-03 9 views
8

Bazı denetleyiciler için bir "/ admin" öneki oluşturmak amacıyla bir kapsam oluşturmak için this Rails Guide kullanıyorum.Raylar 3 Yönlendirme - Yönetim öneki oluşturmak için kapsam nasıl kullanılır?

Sayfalar adlı bir denetleyicim var, "/ admin/pages" aracılığıyla erişmek istiyorum.

scope "/admin" do 
    resources :pages 
end 

Bu harika çalışıyor, ancak "/ pages" üzerinden hala erişilebilir ... Buna nasıl engel olurum?

(I Rails 3 kullanıyorum) İşte benim yolları dosyasıdır:

devise_for :users 

scope "/admin" do 

    resources :pages 

    resources :contents 

end 

root :to => "index#index" 

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

cevap

7

ad İçin sözdizimi doğru olmakla birlikte, uygun, çünkü son satırından catch-all maçı kaldırmak gerekir varsayılan routes.rb dosya, istenen URL, beyan ettiğiniz ad eşleşmiyor

# 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. 

, hala sonunda catch-all rota karşı eşleşir.

+0

teşekkür ederiz. Evet eminim. Ben yeni bir raylıyım, bu yüzden muhtemelen basit bir şeyi özlüyorum. Rotalar işe yarıyor, ama eski yollar hala istemediğim şey. – jyoseph

+1

Hmm ... Sadece denedim, yani gerektiği gibi çalışmalı. Web sunucusunu yeniden başlattınız mı? Geliştirme modunda, yeniden başlatmanız gerekmemelidir, ancak bu bir çekimdir. Routes.rb dosyanızı gönderir misiniz? –

+0

Rota dosyası ile güncellenmiş gönderi. El için teşekkürler! (Ayrıca, rotaları yönlendirdim ve sunucuyu yeniden başlattım) – jyoseph

0

bu deneyin çalışması gerekir deneyin: hızlı cevap için

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