Таблица полиморфизма разделена на 3 контроллера - PullRequest
0 голосов
/ 07 февраля 2019

Я создаю приложение, в котором вы можете написать отзывы на company их профиле.Обычно это отношение один ко многим, но в приложении вы также можете написать отзывы на страницах apartment и arrangements.Таким образом, у меня есть 3 разные страницы, чтобы добавить функциональность обзора.Очевидно, что пользователь может редактировать и удалять отзывы тоже.

Таблица reviews полиморфна.Итак, у вас есть поле с reviewable_type и reviewable_id

Теперь я думал сделать ReviewController для уменьшения дублирования кода.Проблема, с которой я сейчас сталкиваюсь, заключается в том, что мне нужно отображать обзоры на этих 3 разных страницах, но я не хочу включать один и тот же код в каждый контроллер (ApartmentController, ArrangementController, CompanyController).

Каков наилучший способ достичь этого решения без дублирования большого количества кода.

Я думал поместить специальный класс вне шаблона MVC, но я хочу сохранить его как можно ближе к шаблону MVC..

Кроме того, я подумал о том, чтобы добавить еще один метод в 3 контроллера, но опять же будет дублирование кода.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Создайте модальную функцию внутри компании, пусть она называется Reviews, которая принимает тип обзора в качестве параметра.

Теперь вызывайте модальную функцию Reviews с типом отзыва в ApartmentController, ArrangementController, CompanyController.

0 голосов
/ 07 февраля 2019

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

Создайте новую черту ReviewTrait, вставьте в нее код и используйте его во всех контроллерах.

Вы можете найти больше черт здесь Ссылка .

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