2014-12-09 5 views
4

Привет, у меня есть контроллер панели администратора и есть много контроллеров в панели администратора. Я хочу, чтобы соответствовать маршрутам, как правило, без имен я использовалRails 4 - Как сопоставить маршруты в пространстве имен

match ':controller(/:action(/:id))', :via => [:get, :post] 

Я хочу, чтобы этот контроллер имен моего текущего

router.rb

namespace :admin do 

get '', to: 'dashboard#index', as: '/' 

get 'dashboard/index' 

##AUTHENTICATION 
get 'login/index' 
get 'login/logout' 
post 'login/attempt_login' 
get 'login/attempt_login' 

##PAGES 
get 'pages/index' 
get 'pages/add_new' 
get 'pages/edit' 
post 'pages/create' 
post 'pages/update' 
post 'pages/task' 
get 'pages/task' 

##USERS 
get 'users/index' 
get 'users/edit' 
get 'users/delete' 
get 'users/destroy' 
get 'users/update' 
get 'users/add_new' 
post 'users/create' 
post 'users/update' 
post 'users/task' 

#USER GROUPS 
get 'user_group/index' 
get 'user_group/add_new' 
get 'user_group/edit' 
post 'user_group/create' 
post 'user_group/update' 
post 'user_group/task' 

#USER GROUPS 
get 'access_sections/index' 
get 'access_sections/add_new' 
post 'access_sections/create' 
post 'access_sections/update' 
post 'access_sections/task' 

end 

Любого решения, пожалуйста?

ответ

6

Вы просто завернуть маршруты вы декларирование в пространстве имен, как так:

namespace :login do 
    get 'index' 
    get 'logout' 
end 

http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

+0

Спасибо @mattforni вот хороший совет, но Unfortuantly я искал что-то матч ': контроллер (/: действия (/: идентификатор)),: через => [: получить,: пост ] –

+0

Вы также можете поместить это в пространство имен. Что именно вы просите? Возможно, я не понимаю ваш вопрос. – mattforni

+0

В последнее время я работал с приложением, которые не имеют имен и контроллеры не было, как users_controller.erb pages_controller.erb some_controller.erb another_controller.erb мой routes.erb файл был просто: корень «страница # индекс " match ': controller (/: action (/: id))',: via => [: get,: post] Я хочу, чтобы эти маршруты сопоставления в пространстве имен, прямо сейчас мне нужно создавать маршруты вручную для каждого контроллера и действия ..! –

1

Например, мы имеем заказы, которые могут быть отменены:

нижеследующее описание в routes.rb

resources :orders do 
     post :cancel, to: 'orders/cancellations#cancel' 
    end 

W запрос больной отправить app/controllers/orders/cancellations_contoller.rb

module Orders 
    class CancellationsController 
    def cancel 
     @order = Order.find(params[:id]).cancel 
    end 
    end 
end 

Это полезно реорганизовать ИСКОПАЕМЫЕ контроллер с многими методами обслуживания.

Желание это помогает