我正在寻找使用MongoMapper的Eager Load Associated Documents。假设我的帖子有一个:has_one条件的作者,我应该能够使用单个查询加载作者
Post.find(:all, :include => :author)
有什么建议吗?
答案 0 :(得分:1)
更新:下面的代码就像模型工作流程一样。我在编码后尝试过它并没有用!
假设您有Post模型和用户模型。
用户has_many帖子,您想要所有用户(作者)发帖。
这里有处理它的提示。我的例子是获取一个帖子。
post.rb
class Post
include MongoMapper::Document
key :title, String
key :body, String
key :user_id, ObjectId
belongs_to :user
end
和user.rb
class User
include MongoMapper::Document
key :name
many :posts, :embed => :title
end
现在,
u = User.first
p = u.posts.first
puts p.title # read it from embedded doc
puts p.body # lazy loading
这里的诀窍是嵌入大多数常见字段,如用户名,_id,用户slug等。
我没有测试上面的内容,但你必须尝试一下!
最佳--Amr