Лучшая практика Mongoid: NestedResources

Я начинаю с небольшого проекта Rails3:MongoDB:Mongoid и столкнулся с некоторыми вопросами, которые по своей природе более архитектурны.

Когда использовать вложенные ресурсы и насколько глубоко их вкладывать?

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

Так что мой первый вопрос был: Должен ли я использовать вложенные маршруты в случае ассоциации references_many ‹=> referenced_in?

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

Я ошибся? Должен ли я также вкладывать маршруты таких ассоциаций?

После этого я пришел к своим первым встроенным документам и возразил себе: «Эй, это напрашивается на вложенность маршрутов. Через несколько итераций я получил 4 документа вместо 2, каждый из которых был встроен в один из других. Таким образом, вложение маршрутов привело к URL-адресам, которые мне не очень нравились.

Итак, вопрос к уже опытному пользователю MongoDB: следует ли вкладывать? И если да, то при каких обстоятельствах и насколько глубоко?

Приветствует Дж.


person Jason Nerer    schedule 11.08.2010    source источник


Ответы (1)


У меня был похожий набор вопросов. Райан Бейтс создал отличный Railscast о Mongoid после того, как вы сделали этот пост. Существует раздел, посвященный ассоциациям и тому, когда использовать идиому embedded_* по сравнению с идиомой references_*. У него есть примеры того и другого. Надеюсь, у вас была возможность проверить Railscast. Если нет, вот ссылка на соответствующий ASCIIcast:

http://asciicasts.com/episodes/238-mongoid

Все, что я читал о вложенных ресурсах в отношении Mongoid или ActiveRecord, утверждает, что рекомендуется вкладывать не более одного уровня в глубину.

http://weblog.jamisbuck.org/2007/2/5/nesting-resources

person Mike Clymer    schedule 10.02.2011