Лучшие практики Mongoid: NestedResources - PullRequest
3 голосов
/ 11 августа 2010

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

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

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

Итак, мой первый вопрос был следующим: следует ли мне использовать вложенные маршруты в случае ассоциации reference_many <=> referenced_in?

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

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

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

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

Привет J.

1 Ответ

1 голос
/ 11 февраля 2011

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

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

Все, что я читал о вложенности ресурсов в отношении Mongoid или ActiveRecord, указывает на лучшую практику вложения не более одного уровня глубиной.

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

...