我正在开发一个具有admin
命名空间的小型Ruby / Rails应用程序。当管理员登录时,会将其重定向到显示公司徽标的小仪表板(此应用程序是Service Request Claim应用程序)。然后,管理员可以单击徽标,然后查看该公司的服务请求。
我的路线:
resources :customers
resources :service_requests do
resources :notes
end
namespace :admin do
get '', to: 'dashboard#index', as: '/'
resources :companies do
resources :service_requests
end
end
现在,将有2个服务请求控制器(一个用于/ admin,一个用于普通用户)。用户belong_to
公司,并将看到他们所属公司的服务请求。
是否可以拥有2个服务请求控制器?
修改
以下是rake routes
service_requests GET /service_requests(.:format) service_requests#index
POST /service_requests(.:format) service_requests#create
new_service_request GET /service_requests/new(.:format) service_requests#new
edit_service_request GET /service_requests/:id/edit(.:format) service_requests#edit
service_request GET /service_requests/:id(.:format) service_requests#show
PATCH /service_requests/:id(.:format) service_requests#update
PUT /service_requests/:id(.:format) service_requests#update
DELETE /service_requests/:id(.:format) service_requests#destroy
admin GET /admin(.:format) admin/dashboard#index
admin_set_company GET /admin/set_company(.:format) admin/dashboard#set_company
admin_company_service_requests GET /admin/companies/:company_id/service_requests(.:format) admin/service_requests#index
POST /admin/companies/:company_id/service_requests(.:format) admin/service_requests#create
new_admin_company_service_request GET /admin/companies/:company_id/service_requests/new(.:format) admin/service_requests#new
edit_admin_company_service_request GET /admin/companies/:company_id/service_requests/:id/edit(.:format) admin/service_requests#edit
admin_company_service_request GET /admin/companies/:company_id/service_requests/:id(.:format) admin/service_requests#show
PATCH /admin/companies/:company_id/service_requests/:id(.:format) admin/service_requests#update
PUT /admin/companies/:company_id/service_requests/:id(.:format) admin/service_requests#update
DELETE /admin/companies/:company_id/service_requests/:id(.:format) admin/service_requests#destroy
答案 0 :(得分:0)
如果您正在考虑向管理员和普通用户显示不同的结果,我认为这是一个正确的解决方案,保留两个控制器(一个用于管理员用户,另一个用于普通用户)。但是如果信息相同,而且演示文稿太......没有使用两个不同的控制器,你可以使用路径只使用一个控制器。