контроллер и успокоительное приложение - PullRequest
2 голосов
/ 15 декабря 2009

У меня есть веб-приложение MVC (Ruby, Rack, Apache), и я хочу, чтобы оно было спокойным. У меня есть диспетчер, который получит входящий URI и вызовет соответствующий контроллер. На мой взгляд, контроллер для обработки всех действий, связанных с одной моделью, я не прав? В чем я не уверен, так это в следующем случае:

Если у пользователя есть несколько элементов, как я могу получить определенный элемент, используя URI / user / user_id / item / item_id Я имею в виду, это то, что должно быть обработано в UserController, или мне нужно создать еще один контроллер "кросс-классов", такой как UserItemController, который должен заботиться об этом короле вещей? Я надеюсь, что я ясно :-) Большое спасибо, Люк

Ответы [ 2 ]

2 голосов
/ 15 декабря 2009

Организация ваших методов в контроллерах или моделях имеет мало общего с тем, будет ли ваше приложение спокойным или нет. В идеале попытайтесь сопоставить 1 контроллер с 1 моделью, но у вас может быть контроллер, выделенный для действия (например, login).

Что вы хотите посмотреть, так это файл rout.rb . Здесь вы будете сопоставлять ресурсы и т. Д.

  map.connect ':controller/:action/:id'

Рекомендую прочитать Отличная статья Райана Томайко о ОТДЫХЕ

0 голосов
/ 15 декабря 2009

Сколько кода будет в контроллере? Какие зависимости они будут иметь? Сколько вам нужно перестроить, если эти зависимости изменятся? Можете ли вы вообразить подразделение ответственности между проектной командой - некоторые люди работают над пользователями, другие над элементами?

Я склонен к тому, чтобы количество контроллеров было небольшим, поэтому я бы разделил их только для обеспечения параллельной разработки, или если вы обнаружите, что какая-то часть «пространства URL», кажется, имеет свою собственную жизнь, много оттока, в то время как остальное стабильно.

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

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