Модели пространства имен в Rails: каково состояние объединения? - PullRequest
17 голосов
/ 02 марта 2009

С самого начала в Rails возникали проблемы с моделями пространства имен. Со временем все практически перестали его использовать. Я в том числе.

С Rails 2.3 я бы хотел получить обновленную информацию о ситуации. Конкретные вопросы, которые я имею в виду:

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

Ответы [ 3 ]

14 голосов
/ 05 марта 2009

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

3 голосов
/ 05 марта 2009

У нас недавно были большие споры об этом внутри нашей компании. Я думаю, в конце концов, мы решили, что если вы не можете использовать таблицы пространств имен в базе данных, нет смысла выделять пространство имен моделям. Мы решили поставить перед нашими моделями префикс (User, UserAddress, UserEmailAddresses) и поместить их в каталог пользователей, а затем использовать:

config.load_paths << "#{RAILS_ROOT}/app/models/users"

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

has_many :addresses, :class_name => "UserAddress"

При создании мы создаем его так, как если бы не было пространства имен (скрипт / генерировать модель UserAddress), а затем вручную копировали его в каталог пользователя.

Shrug. Полагаю, в конце концов, все, что вам действительно дает, - это более чистая структура каталогов, что на самом деле доставляет больше хлопот таким пользователям VIM, как я, но хорошо для TextMaters.

0 голосов
/ 05 марта 2009

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

Мое последнее приложение имеет 87 ресурсов и включает в себя административные функции повсюду. Я не вижу необходимости в именах, ИМХО.

...