REST Rails 2 вложенные маршруты без имен ресурсов? - PullRequest
0 голосов
/ 11 июня 2010

Я использую Rails 2. У меня есть ресурсы, вложенные следующим образом: - university_categories - университеты - учеба - профессора - комментарии

Я хочу использовать маршруты RESTful, но я не хочу, чтобы все это загромождалосьмой URL.Например, вместо: / университета /: университета_ид / исследования /: study_id / профессора /: профессор_ид Я хочу: / профессора /: университет_ид /: study_id /: профессор_ид (я не отображаю профессоров отдельно, поэтому не должно быть путаницымежду этим и / professors /: Professor_id, поскольку этот маршрут не должен существовать).Опять же, я хочу использовать ресурсы / маршруты RESTful ... Также обратите внимание, что я использую слагов вместо идентификаторов.Слизняки для исследований не являются уникальными, в то время как другие.Кроме того, не существует отношений «многие ко многим» (поэтому, если я знаю пула профессора, который является уникальным, я также знаю, к какому образованию, университету и категории он относится, однако я все же хочу, чтобы эта информация была в URIесли это возможно для SEO, а также это необходимо при добавлении нового профессора).Однако я хочу использовать мелкую вложенность для URI-адресов «администратор», таких как edit, destroy (обратите внимание, что здесь проблема с Study, так как его слаг не уникален) ...

Я также хотел бы получить несколько советов о том, какиспользовать помощники URL, чтобы у меня не было слишком много, чтобы исправить, если я изменю маршруты в будущем ...

Спасибо.

1 Ответ

0 голосов
/ 11 июня 2010

Не похоже, что map.resources предоставит вам эту функциональность, но вы можете использовать что-то вроде (не проверено)

map.show_professor "/professors/:university_id/:study_id/:professor_id", :controller => "professors", :action => "show"

, а затем аналогичные маршруты для других действий.

Возможно, есть лучшее решение, но это единственный способ, который я могу найти, который будет работать, так как кажется, что map.resources предполагает, что он имеет вид / resources / (: resource_id)

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

В качестве примера редактирования вы можете просто использовать

map.edit_professor "/professors/:id/edit", :controller => "professors", :action => "edit"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...