Я пишу сайт с несколькими уровнями привилегий. В моей системе в основном 3 вида пользователей. Это Администратор, Бизнес и Потребители (обычные пользователи). Скажем так, я строю рекламный сайт.
Итак, у меня есть модель "Кампания", которая имеет RESTful API, который поставляется с эстакадой рельсов. Предприятия могут создавать кампании, пользователи могут видеть только те кампании, к которым они хотят присоединиться, а администраторы могут делать все.
Теперь я знаю, как применить before_filter и тщательно проверять тип пользователей, которые могут получить доступ к определенному представлению.
Однако каждый уровень привилегий имеет свои уникальные представления.
Предприятия могут видеть идеи и аналитику своих кампаний. (давайте назовем это кампании / аналитика)
Потребители могут видеть все кампании, в которых они участвовали. (Давайте назовем эти кампании / ваши)
А у администраторов есть особые представления, где они могут отслеживать активность сайта. (давайте назовем эту кампанию / monitor_bususiness).
Прямо сейчас у моего CampaignController есть обычные RESTful просмотры + аналитика + ваши + monitor_usinessusiness. Конечно, у меня есть несколько моделей данных (не только кампаний), и это делает мои контроллеры RESTful для этих моделей данных действительно беспорядочными.
Что мне делать? Я серьезно рассматриваю возможность запуска ConsumerController, а затем BusinessController и добавления всех связанных представлений в эти контроллеры. Я не знаю, нарушает ли это принципы «RESTful», но я хочу знать, какие существуют лучшие шаблоны для решения моей проблемы.
Я открыт для всевозможных предложений.