2013-09-19 2 views
0

У меня есть довольно простой вопрос о кодовой организации контроллеров рельсов:Организация Перила контроллеров в пространствах имен

Если у нас есть приложение магазин платформа (т.е. Google Play), который состоит из разработчиков (они создают/загружать приложения) , Админы (обзор и одобрение приложений) и Пользователи (кто использует приложения через магазин).

Разработчики делают все через платформу разработчиков, поэтому имеет смысл иметь пространство имен разработчиков для группировки связанных элементов. Такая же логика, по-видимому, имеет смысл для администратора, дает им панель администратора в пространстве имен admin.

Теперь вот вопрос - у меня есть два пространства имен, Admin и Developer - если разработчик может изменить состояние приложения, от: осадки до: в ожидании (обзор) и администратор может изменить состояние из очереди на: утвах/: reject, где рекомендуется место для хранения apps_controller.rb?

Существует, по-видимому, три способа справиться с этим, и я не совсем уверен, что является наиболее «правильным» по практическим соображениям или по обычным причинам.

три варианта я могу думать о том, являются:

1) В обоих Admin & Developer пространства имен (и заполнить магазин от разработчика :: приложениям)?

2) Только в Developers имен

3) apps_controller не должны жить в любом пространстве имен.

ответ

0

Не беспокойтесь, вы находитесь в мире ОО.

Две конструкции:

  1. сделать общий AppsController, но не маршрутизации к нему. Администраторы приложений и разработчиков приложений наследуют это и перезаписывают, когда это необходимо.

  2. Создайте модуль и включите его в приложение AdminController и разработчика разработчика, перезапишите, когда это необходимо.

Трудно сказать, что лучше без подробного использования, хотя я бы предпочел # 1 в целом.

+0

Спасибо за ответ. Да, # 1 звучит как звуковой подход. Тем не менее, разработчики :: AppsController в настоящее время наследуются от Developer :: BaseController (чтобы наследовать параметры авторизации и т. Д.) - в этом случае было бы лучше пойти с № 2 или есть обходной путь, который я мог бы сделать? – 8bithero

+0

Да, тогда в этом случае будет # 2. –

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