Я изучаю Ruby и Rails и пытаюсь найти наиболее правильный путь для моего сценария относительно возможного пространства имен, а также маршрутизации.Ruby on Rails Namespacing и вложенная маршрутизация
Скажем, у меня есть модель «Зоопарк», а также модель «Вид». Мне также нужны отношения между ними, чтобы рассказать, какие виды находятся в каких зоопарках (зоопарк имеет много видов, которые также будут иметь свои собственные свойства, такие как qty, location и т. Д.)
Я хотел бы, чтобы мои маршруты были такими:
/zoo
/zoo/:id
...
/zoo/:zoo_id/species/
/zoo/:zoo_id/species/:id
...
/species
/species/:id
Я пытался возиться с модулями, пространствами имен маршрутов областей и т.д. Я не могу показаться, чтобы получить его, как бы я хотел, и думаю, что должно быть лучше/естественным способом сделать это. Проблема в основном связана с тем, что у меня есть видовая модель, а также видовая модель зоопарка (я пробовал namespacing в Zoo и создавал классы Zoo :: Zoo and Zoo :: Species, создавая класс ZooSpecies и корректирующие маршруты для этих сценариев и т. д.)
С организационной точки зрения было бы здорово иметь класс Zoo и пространство имен Zoo, чтобы иметь Zoo :: Species и т. д., но это невозможно ,
Каков правильный способ организовать что-то подобное?
Update: Моя текущая настройка ...
Zoo Module
Zoo::Zoo Class
Zoo::Species Class
Species Class
Маршруты:
resources :zoos, path: 'zoos' do
resources :zoo_species, path: 'species', as: 'species', controller: 'zoo/species'
end
И Zoo
контроллер и контроллер Zoo::Species
. Я чувствую, что приближаюсь к желаемому результату, но борюсь с каркасом больше, чем я думаю. Тем не менее работаю в некоторые вопросы, правильно Наладка отношения и пути, имеющим указать много значений конфигурации
Зачем вам нужны '/ zoo /: zoo_id/species /: id' и'/species /: id'? – tybro0103
Разве связь между зоопарком и видами не будет M: M? – tybro0103
@ tybro0103 - Мне нужны оба маршрута, поэтому я могу показать вид вообще (например: эта страница о зебрах вообще) и информация о виде, который специально находится в зоопарке (например: теперь это много зебр, этот зоопарк имеет, где они находятся и т. д.).И да, это много для многих через ассоциацию. Моя проблема связана, главным образом, с тем, что у меня есть «Species» в целом, а также «ZooSpecies», а затем после этого разработка маршрутизации, чтобы быть дружественной. Поэтому я не уверен, что лучший способ организовать на основе этого факта ... Лучше ли появятся имена под зоопарком в зоопарке? Или класс ZooSpecies затем исправляет маршрутизацию? – Ryan