Приложение Rails с несколькими пространствами имен - PullRequest
2 голосов
/ 24 марта 2011

Я начинаю большой проект Rails, который будет состоять из нескольких независимых областей, включая область администрирования, интерфейсный веб-сайт, область пользователя и API.

Было бы разумно создать, скажем, 3 пространства имен для этих разделов (оставив интерфейсный веб-сайт в качестве корневого)?

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

В моих прошлых проектах на Rails я всегда использую пространство имен администратора, но в этом случае есть ли какие-либо недостатки в использовании нескольких пространств имен в долгосрочной перспективе (в отношении маршрутизации / взаимодействия с другими пространствами имен)?

Любой совет будет высоко ценится!

Ответы [ 3 ]

5 голосов
/ 24 марта 2011

нет недостатков, только преимущества, если пространства имен имеют смысл.Очевидно, что слишком много пространств имен может привести к путанице и бессмысленности, но распад администратора / клиента / общественности - довольно распространенный случай использования пространств имен.

просто убедитесь, что вы даете всем своим контроллерам уникальные имена, так что вы не делаетестолкнуться с проблемой, с которой столкнулся этот парень с пространствами имен: http://blog.philburrows.com/articles/2008/05/02/rails-namespaces-rock-rails-namespaces-suck-/

3 голосов
/ 24 марта 2011

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

Одна мысль, которую вы должны иметь в виду, заключается в том, что у вашего проекта будет еще один уровень вложенности каталогов. Например, вы не можете просто заглянуть в каталог views и получить представление о всех ваших представлениях, поскольку все они будут жить в каталогах, соответствующих их пространству имен (то же самое относится и к тестам). Это часто желательно, однако, поскольку это помогает вещам оставаться немного более организованными.

0 голосов
/ 02 апреля 2011

checkout http://www.ror -e.com и приложение github https://github.com/drhenner/ror_ecommerce У него есть несколько пространств имен, и большинство пространств имен имеют собственный base_controller.

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