Rutas anidadas

Tengo una aplicacion en la cual uno de los recursos (roles) deberia ser
solo accesible desde /admin/roles… para esto cree una ruta virtual
/admin de la siguiente forma:

map.resource :admin do |admin|
admin.resources :roles, :name_prefix => ‘admin_’
admin.resources :welcome, :name_prefix => ‘admin_’
admin.resources :users, :name_prefix => ‘admin_’
admin.resource :settings do |settings|
settings.resources :setting_smtps, :name_prefix =>
‘admin_settings_’
settings.resources :setting_ddbbs, :name_prefix =>
‘admin_settings_’
settings.resources :setting_ldaps, :name_prefix =>
‘admin_settings_’
settings.resources :setting_applications, :name_prefix =>
‘admin_settings_’
end
end

a su vez dentro de la misma esta otra ruta virtual llamada settings, las
rutas me funcionan correctamente pero mi problema esta en que tambies es
admisible desde

localhost/roles o localhost/setting_ldaps por ejemplo…

como puedo hacer para que SOLO sean admisible desde /admin o
/admin/settings, segun sea el caso?

he estado buscando ejemplos por todo internet pero solo encuentro para
aqueos que son admisibles desde ambas rutas :s…

Lo mas seguro es que en tu routes.rb tengas una linea asi: map.resources
:roles que deberias sacar.

2008/8/7 Roberto R. [email protected]

Roberto,

si estas en rails 2.x, en lugar de crear un resources “admin”
ficticio, puedes hacer

map.namespace :admin do |admin|
admin.resources :roles <- No hace falta poner :name_prefix
ni :path_prefix ni nada
end

Salutaciones,

Isaac Feliu

Juan P. wrote:

Lo mas seguro es que en tu routes.rb tengas una linea asi: map.resources
:roles que deberias sacar.

2008/8/7 Roberto R. [email protected]

no existe esa ruta, ya las elimine, la unica referencia a roles es la
que esta dentro de admin…

y con respecto a lo de namespace de hacerlo asi tendria que renombrar la
clase de roles en Admin::RolesController lo cual no me serviria ya que
por ejemplo el user y el welcome son controladores que si se tiene
acceso de ambas formas /admin/welcome y admin/users o /welcome y
/users…

podria evitar la entrada a /roles mediante condicionales revisando la
url, pero queria saber si es posible hacerlo de manera directa por medio
de las rutas.

a su vez hago un rake de las rutas y solo me salen bajo /admin y
/settings… las rutas como /roles o /setting_application no salen :s…
como podria bloquearlas desde el mismo archivo routes.rb para que no
sean accesibles?