2009-12-15 3 views
2

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

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

ответ

2

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

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

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

Я рекомендую читать the excellent article of Ryan Tomayko about REST

+0

Отличная статья, спасибо – Luc

+0

Это было очень полезно для меня в начале. Кстати, рассмотрите возможность принятия/принятия ответов. Взгляните на эту статью: http://meta.stackexchange.com/questions/7237/how-does-reputation-work-on-stack-overflow/7238#7238 для получения дополнительной информации о репутации и т. Д. – marcgg

+0

(и добро пожаловать в SO!) – marcgg

0

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

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

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

+0

- не много кода - зависимости внутри контроллера? Ну, это то, что я пытаюсь выяснить на самом деле - Я думаю, что работа по восстановлению не так важна - Не разделяющая ответственность перед командой проекта Да, вы правы, я думаю, что это решение может быть принято позже но на самом деле я хотел знать, есть ли в этом случае некоторые виды лучших практик. - с помощью контроллера для запроса/обновления вещей в нескольких разных моделях ... или - с помощью контроллера для указанной модели, но в этом случае, как обрабатывать отношения с крест-моделью? Большое спасибо – Luc

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