Что такое «Rails-способ» для работы с большим количеством контроллеров? - PullRequest
9 голосов
/ 01 октября 2011

В моем приложении на Rails контроллеры начинают накапливаться (> 30).

Будь я Java, я давно начал создавать подпакеты, но я немного колеблюсь здесь. У меня уже есть пространство имен User и Admin, но я не уверен, хорошо ли создавать более тонкую структуру пространства имен, особенно с учетом удобства обслуживания.

Что такое "путь рельсов" в этом случае?

  • Просто есть более или менее плоская структура контроллера?
  • Или лучше щедро объединить контроллеры в пространства имен / модули?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

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

Пока ваши контроллеры являются тощими и представляют 1 модель каждая, я не возражаю против даже 100 контроллеров в квартирепапка.Когда у вас будет значительно больше контроллеров, чем моделей, я бы начал беспокоиться.

Конечно, это все ИМХО.

2 голосов
/ 01 октября 2011

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

Прошло больше времени, и мы начали группировать его по папкам, например, в папке с именем coach все связанные функции для тренера пошли бы, а имена контроллеров стали выглядеть как class Coach::SchedulesController < ApplicationController.

Этот способ группировки также поможет при написании функциональных тестов. Вы не хотите, чтобы ваш функциональный тест также имел безумное количество строк.

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

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