2011-10-01 3 views
9

В приложении Rails контроллеры начинают накапливаться (> 30).Что такое «Rails way» для работы с большим количеством контроллеров?

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

Что такое «Rails way» в этом случае?

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

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

+0

Просто интересно, что вы имеете в виду под большим количеством? –

+0

@Beerlington: 36 и подсчет :) (Обновленный вопрос тоже) –

ответ

2

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

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

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

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

2

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

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

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

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