Route error to Admin namespace

Hi.

I have some apps that i have “admin” areas to the clients manager the app.

This “admin” is a directory on my controllers path, like this:

my_site
–> app
–>-->controllers
–>-->–>admin

And my controllers in “admin”, i use the correct namespace(example for clients_controller):

class Admin::ClientsController < AdminController

Only doing it and dont use routes, it run OK if i access by the url:

http://localhost:3000/admin/clients

But local and on my server(passenger) it is ok, and function normal, but on JRUBY i get an error because it is thinking that “admin” is a controller and “clients” is a action of “admin”.

My controllers is not restfull, so what i have to do, to correct it? Or what the best method to make the “admin”? I have to put any route?

But local and on my server(passenger) it is ok, and function normal, but on
JRUBY i get an error because it is thinking that "admin" is a controller and
"clients" is a action of "admin".

My controllers is not restfull, so what i have to do, to correct it? Or what
the best method to make the "admin"? I have to put any route?

I have an admin section in jruby application. Try to set the routes
explicit with an admin namespace.

map.with_options(:namespace => "admin") do |admin|
  admin.resources :clients
  # or in non restful-pattern
  admin.clients_index 'clients', :controller => 'admin/clients',
:action => 'index'
end

Hi.

Your solution dont solve.

But i try it:

map.with_options(:namespace => “admin”) do |admin|
admin.clients_index ‘admin/clients’, :controller => ‘clients’ #im on admin so dont need redirect to “admin/clients” only “clients”
end

And to the index(home) action, it is OK, but for the others actions, NO (insert/delete/edit).

This solution is near, but have to put all action do controller “clients”.

Any ideia?

Hi.

Your solution dont solve.

But i try it:

map.with_options(:namespace => "admin") do |admin|
admin.clients_index 'admin/clients', :controller => 'clients' #im on
admin so dont need redirect to "admin/clients" only "clients"
end

And to the index(home) action, it is OK, but for the others actions, NO
(insert/delete/edit).

This solution is near, but have to put all action do controller "clients".

Any ideia?

Oh my mistake ... :slight_smile:

map.with_options(:namespace => "admin") do |admin|
  admin.clients_index 'clients', :controller => 'clients', :action => 'index'
  admin.clients_edit 'clients/:id/edit', :controller => 'clients',
:action => 'edit'
  admin.clients_insert 'clients/insert', :controller => 'clients',
:action => 'insert', :conditions => { :method => :post }
end

Hint: Your actions looks to match the resource-pattern

Hi.

But my system is an ERP, i have more than 20 controllers.

I have to make it for all controllers and actions?

My actions is in portuguese, not “edit” but “alterar”… i put here an example of my structure.

Dont have other method? A route that redirect all with “admin/” to “admin/:controller/:action/:id” ???

But my system is an ERP, i have more than 20 controllers.

I have to make it for all controllers and actions?

I have an application with something like 20 controllers and make all
routes explicit for each controller.

My actions is in portuguese, not "edit" but "alterar"... i put here an
example of my structure.

Dont have other method? A route that redirect all with "admin/" to
"admin/:controller/:action/:id" ???

You could probably do

map.with_options(:namespace => "admin") do |admin|
admin.connect ':controller/:action/:id'
end

Hum. Ok.

The last solution doesn’t work, so i think that i’ll have to make a route to each controller :frowning:

Do you make one route by controller? Can you post an example about how i can redirect all from “admin/clients” to correct controller/action/id ?

I make a solution that work fine to me, but i have to create one for each controller:

clients

map.admin_clients ‘/admin/clients/:action/:id’, :controller => ‘/admin/clients’

This works fine for me in jruby:

map.namespace(:admin) do |admin|
  admin.resources :clients
  admin.resources :options, :has_many => :widgets
end

Does this not work?

Make sure its above the default routes...

Hi.

Im already try it, but no sucess.

My controllers is not restfull.