Хотя пространство имен имеет свои преимущества, оно требует добавления исключений во всех ваших моделях. Foo :: Bar предполагает имя таблицы bars
и аналогично bar_id
для ассоциаций, тогда как вы можете предпочесть foo_bars
и foo_bar_id
для использования вместо.
Если вы действительно сильно настроены по этому поводу, вы можете посмотреть, есть ли надстройка, которая исправляет это для вас, или реализовать собственное расширение, которое это делает.
Единственный случай, когда я использовал пространства имен, - это для надстроек, которые должны использоваться в сторонних приложениях, где я не хочу требовать имен моделей корневого уровня, так как это раздражает. Дополнительные усилия в этом случае стоят того.
Если вам надоело видеть более 100 файлов моделей без какой-либо группировки, вы, вероятно, будете одинаково раздражены, увидев более 100 таблиц без группировки, и это обычно невозможно исправить.
Контроллеры поддаются группировке вполне естественно, но модели не так легко приспосабливаются, по крайней мере, не со стандартным ActiveRecord.