2014-12-11 4 views
0

Это полиморфная ассоциация!Полиморфные маршруты, указывающие на тот же контроллер и действие

resources :professors, :labs do 
    member do 
    resources :teaching_assistants 
    end 
end 

Я хочу иметь индекс для преподавателей ассистентов, лаборатории ассистенты и ассистенты, как так:

/professors/id/teaching_assistants 
/labs/id/teaching_assistants 
/teaching_assistants 

Все эти маршруты, указывающие на teaching_assistants # индекс. Должен ли я явно указывать вложенные маршруты на действие в контроллерах профессоров и лабораторий? Как мне это сделать/изменить файл маршрутов?

resources :professors, :labs do 
    member do 
    resources :teaching_assistants, except: :index 
    end 
end 

get '/professors/id/teaching_assistants' => professors#assistantsindex 
get '/labs/id/teaching_assistants' => labs#assistantsindex 

ответ

1

Использование ресурсов для создания всех основных RESTful указателей (индекс/создание/чтение/обновление/удаление). Похоже, что ваши преподаватели - это страница с одним списком, и в этом случае вы просто используете , чтобы получить маршрут.

Попробуйте это:

resources :professors, :labs do 
    member do 
     # /professors/id/teaching_assistants > professors#teaching_assistants 
     # /labs/id/teaching_assistants > labs#teaching_assistants 
     get 'teaching_assistants' 
    end 
end 

# /teaching_assistants 
get 'teaching_assistants' 
Смежные вопросы