您好我有管理面板控制器,管理面板中有很多控制器。 我想匹配通常没有使用名称空间的路线
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
有任何解决方案吗?
答案 0 :(得分:6)
您只需将您声明的路由包装在名称空间中,如下所示:
namespace :login do
get 'index'
get 'logout'
end
http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing
答案 1 :(得分:2)
例如,我们有可以取消的订单:
以下routes.rb
resources :orders do
post :cancel, to: 'orders/cancellations#cancel'
end
将请求发送到app/controllers/orders/cancellations_contoller.rb
module Orders
class CancellationsController
def cancel
@order = Order.find(params[:id]).cancel
end
end
end
使用多种服务方法重构控制器资源非常有用。
希望有所帮助