2

我正在寻找使用 MongoMapper 的 Eager Load Associated Documents。假设我有一个具有 :has_one 条件的作者,我应该能够使用单个查询加载作者

Post.find(:all, :include => :author)

有什么建议么?

4

1 回答 1

1

更新:下面的代码就像模型工作流一样。我在一些编码后尝试了它,它没有工作!

假设您有 Post 模型和 User 模型。

用户有很多帖子,并且您想要所有用户(作者)及其帖子。

这里有一个技巧来处理它。我的例子是获取一篇文章。

post.rb

class Post
  include MongoMapper::Document

  key :title, String
  key :body, String
  key :user_id, ObjectId

  belongs_to :user

end

和用户.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

于 2010-10-23T16:23:02.907 回答