I'm using this Rails Guide to create a scope in order to create an "/admin" prefix for some controllers.
So I have a controller named Pages, I want to access it via "/admin/pages".
scope "/admin" do
resources :pages
end
That works great, but it is still accessible via "/pages" ... How do I prevent that? (I'm using Rails 3)
Here's my routes file:
devise_for :users
scope "/admin" do
resources :pages
resources :contents
end
root :to => "index#index"
match ':controller(/:action(/:id(.:format)))'
Your syntax for the namespace is correct, but you need to remove the catch-all match from the last line because, according to the default routes.rb file,
# 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.
If the requested URL does not match the namespace you have declared, it will still match against the catch-all route at the end.
Try this should work
namespace :admin do
resources :pages
end
http://edgeguides.rubyonrails.org/routing.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With