Как мне решить эту ошибку вложенных маршрутов в рельсах? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть приложение, реализованное в rails, в результате я хочу получить доступ к следующему URL: http://localhost:3000/academics/students/1/schedules, но при попытке доступа появляется следующая ошибка: Routing Error uninitialized constant Academics::SchedulesController

Проблема в том, чтоЯ не мог сделать это для вложенных ресурсов, поскольку расписания для студентов уже существуют на другом маршруте, а предыдущий маршрут академиков предназначен для администраторов с другими независимыми маршрутами.Контроллер расписания в академической среде был создан следующим образом: class Academics::Students::SchedulesController < ApplicationController

Есть ли способ для этого работать с предыдущей реализацией?

Академическая организация route.rb:

  namespace :academics do
    resources :subjects
    namespace :students do
      resources :schedules
    end
    resources :groups
  end

Спасибо.

1 Ответ

0 голосов
/ 15 октября 2018

Если вы сделаете:

namespace :academics do
  resources :subjects
  resources :students do
    scope module: :students do 
      resources :schedules
    end
  end
  resources :groups
end

Тогда вы получите (среди прочего):

    academics_student_schedules GET    /academics/students/:student_id/schedules(.:format)          academics/students/schedules#index
                                POST   /academics/students/:student_id/schedules(.:format)          academics/students/schedules#create
 new_academics_student_schedule GET    /academics/students/:student_id/schedules/new(.:format)      academics/students/schedules#new
edit_academics_student_schedule GET    /academics/students/:student_id/schedules/:id/edit(.:format) academics/students/schedules#edit
     academics_student_schedule GET    /academics/students/:student_id/schedules/:id(.:format)      academics/students/schedules#show
                                PATCH  /academics/students/:student_id/schedules/:id(.:format)      academics/students/schedules#update
                                PUT    /academics/students/:student_id/schedules/:id(.:format)      academics/students/schedules#update
                                DELETE /academics/students/:student_id/schedules/:id(.:format)      academics/students/schedules#destroy

Это будет маршрут:

/academics/students/1/schedules 

Вindex действие Academics::Students::SchedulesController.

Кстати, я не уверен, есть ли у вас буквально пробелы в определении вашего класса (то есть, class Academics :: Students :: SchedulesController < ApplicationController), как показано в вашем вопросе.Если так, то это кажется мне необычным.Но если это сработает, это будет интересно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...