2015-05-06 3 views
1

Я использую devise и поэтому не нуждаюсь в контроллере . Однако мне также нужны вложенные маршруты, и мои config.routes выглядят так:uninitialized constant UsersController

devise_for :admin_users, ActiveAdmin::Devise.config 
    ActiveAdmin.routes(self) 
    devise_for :users 

    resources :users do 
    resources :personal_accounts,path: "user_account", only: [:show] do 
     resources :deposits, only: [:new, :show, :create, :index] 
     resources :withdraws, only: [:new, :show, :create, :index] 
    end 
    resources :businesses do 
     resources :business_accounts, path: "business_account", only: [:show] do 
     resources :business_withdraws, only: [:new, :show, :create, :index] 
     resources :business_deposits, only: [:new, :show, :create, :index] 
     end 
    end 
    end 

Как я могу пройти мимо этой ошибки, сохраняя также мои вложенные маршруты. Спасибо.

ответ

1

У вас есть три уровня вложенности маршрутов там, которые обычно считаются нежелательными: http://edgeguides.rubyonrails.org/routing.html#nested-resources

Ресурсы никогда не должны быть вложенными более 1 уровня вложенности.

Этот бит resources :users do создаст все именованные маршруты для пользовательского контроллера, который, как я подозреваю, является причиной вашей ошибки. Зачем тебе это нужно? Лучше, возможно, указать маршруты без него?

resources :personal_accounts,path: "user_account", only: [:show] do 
    resources :deposits, only: [:new, :show, :create, :index] 
    resources :withdraws, only: [:new, :show, :create, :index] 
end 
Смежные вопросы