Мне нужно получить следующие пути:
PUT /group(.:format) api/v1/groups#update {:format=>:json}
DELETE /group(.:format) api/v1/groups#destroy {:format=>:json}
GET /groups(.:format) api/v1/groups#index {:format=>:json}
GET /groups/:id(.:format) api/v1/groups#show {:format=>:json}
Как вы видите, мне нужно, чтобы PUT и DELETE были равны group
(без идентификатора), но индекс и показ должны быть groups
путь.
Я пробовал это на моем routes.rb
:
resource :group, only: %i[update destroy]
resources :groups, only: %i[show index]
И, похоже, он создает нужные маршруты:
api_group PATCH /group(.:format) api/v1/groups#update {:format=>:json}
PUT /group(.:format) api/v1/groups#update {:format=>:json}
DELETE /group(.:format) api/v1/groups#destroy {:format=>:json}
api_groups GET /groups(.:format) api/v1/groups#index {:format=>:json}
GET /groups/:id(.:format) api/v1/groups#show {:format=>:json}
Но потом, когда я запускаю тесты например, для шоу я получаю:
Failure/Error: get api_group_path(group.id), headers: auth_headers, as: :json
ActionController::RoutingError:
No route matches [GET] "/group.86d95177-9b44-4b5b-8ff7-98b609614c50"
Так что, держу пари, они должны переопределять друг друга, потому что либо работает шоу и индекс, либо происходит удаление и вставка.
Может кто-нибудь мне помочь? Спасибо