2013-04-05 4 views
2

В рельсах 3, у меня есть несколько полиморфных моделей, таких как Image и Comment, поэтому мой вопрос,маршрутизации Полиморфные запросы Рельсы

Когда кто-то делает запрос на создание/обновление/уничтожить полиморфный объект, если запрос идти к одному контроллеру для полиморфного объекта CommentController, или если запрос должен быть перенаправлен контроллеру полиморфного устройства доступа, то есть StatusController или ImageController?

Плюсы одного контроллера состоят в том, что он более СУХОЙ и, возможно, более RESTful, плохая вещь в том, что мне кажется, что он больше сочетает приложение, где многие вещи связаны одним контроллером. Кто-нибудь имеет официальный ответ на этот вопрос?

РЕДАКТИРОВАТЬ: Вопрос НЕ спрашивает, куда идет маршрут, задает вопрос , куда должен идти маршрут? Какое наиболее семантическое решение?

ответ

1

Спасибо за разъяснение.

Вы должны позволить контроллеру комментариев обрабатывать CRUD-действия для комментариев. Ваш исходный аргумент для этого верен, что этот путь более DRY и RESTful. Дополнительная логистика, которую должен обработать контроллер комментариев, не так сложна, поэтому вам все равно следует оставить относительно тонкий контроллер комментариев. Если вы по-прежнему обеспокоены тем, что действия в контроллере комментариев попадают в жир, вы можете абстрагироваться от некоторой логики, написав методы в модели комментариев для обработки некоторой логики.

+0

Когда вы говорите «полиморфный объект», вы имеете в виду «комментарий»? Как три упомянутых выше объекта связаны друг с другом? –

+0

статусы и изображения у обоих есть комментарии. Какой контроллер должен обрабатывать запросы комментариев? – OneChillDude

Смежные вопросы