0

Я пытаюсь выяснить, как выполнить некоторую маршрутизацию в приложении Rails 4. Это мой первый вопрос, поэтому я сделаю все возможное.Добавление пространства имен в ресурсе в rails

У меня есть счета. Пользователь может принадлежать нескольким учетным записям. Учетная запись может включать несколько «модулей» - покупателя/продавца.

resources :accounts do member do namespace :seller do resources :contracts do get "history", on: :member end end namespace :buyer do resources :contracts do get "history", on: :member end end end end

В идеале, счета и контракты (в каждом пространстве имен) будут оставаться изобретательными.

Проблема заключается в том, что когда вы видите маршруты, которые создаются, вложенная контракт ресурс, и оба счета с помощью: идентификатор в Params

stuff_buyer_contract GET /accounts/:id/buyer/contracts/:id/stuff(.:format)

Я предполагаю, что я получу кучу ответов «мелкие пути», но есть ли все равно сделать это, как есть, где: id params будут правильными?

Я хотел бы маршрутизация выглядеть следующим образом:

stuff_buyer_contract GET /accounts/:account_id/buyer/contracts/:id/stuff(.:format)

+0

Как вам маршруты быть? /счета/покупатель/контракты /: id/stuff – Saravanan

+0

@Saravanan I модифицировано вопрос. Посмотрите, поможет ли это. Проблема в том, что как только он попадает в пространство имен, он, кажется, теряет свой контекст и больше не знает о вложенном ресурсе. –

ответ

0

Попробуйте ниже конфигурацию маршрута:

resources :accounts do 
     namespace :seller do 
     resources :contracts do 
      get "history", on: :member 
     end 
     end 
     namespace :buyer do 
     resources :contracts do 
      get "history", on: :member 
     end 
     end 
    end 
+0

Спасибо! Это вызвало добавление «члена». –