MISE À JOUR: Le code ci-dessous est juste comme workflow de modèles .. Je l'ai essayé après un certain codage et il n'a pas fonctionné!
Disons que vous avez le modèle Post et le modèle User.
L'utilisateur has_many messages, et vous voulez tous les utilisateurs (auteurs) avec leurs messages.
Voici une astuce pour le gérer. et mon exemple est d'aller chercher un message.
post.rb
class Post
include MongoMapper::Document
key :title, String
key :body, String
key :user_id, ObjectId
belongs_to :user
end
et user.rb
class User
include MongoMapper::Document
key :name
many :posts, :embed => :title
end
Maintenant,
u = User.first
p = u.posts.first
puts p.title # read it from embedded doc
puts p.body # lazy loading
L'astuce ici est d'intégrer les champs communs comme la plupart du temps le nom de l'utilisateur , _id, user slug, etc.
Je n'ai pas testé ce qui précède, mais il faut essayer!
Meilleur --Amr
Sur le même sujet, ce serait bien si je pouvais avoir la même chose pour un tableau de * objets incorporés * qui ont à leur tour des associations. Ex .: 'question = Question.first; question.comments (: include =>: user) '(où les commentaires sont un modèle incorporé). – hsribei