代码之家  ›  专栏  ›  技术社区  ›  Greg

使用MongoMapper预先加载关联

  •  2
  • Greg  · 技术社区  · 15 年前

    我希望使用MongoMapper加载相关的文档。假设我有一个作者带有:has ou one条件到一篇文章,我应该能够使用一个查询加载作者。

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

    有什么建议吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   amrnt    14 年前

    更新 :下面的代码与模型工作流相同。我在编码之后尝试过,但没用!

    假设您有post模型和用户模型。

    用户有许多文章,您希望所有用户(作者)都有他们的文章。

    这里有一个处理它的技巧。我的例子是取一个帖子。

    邮政银行

    class Post
      include MongoMapper::Document
    
      key :title, String
      key :body, String
      key :user_id, ObjectId
    
      belongs_to :user
    
    end
    

    和用户

    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
    

    这里的技巧是嵌入最常见的字段,如用户名、用户名、用户段塞等。

    我没有测试上面的内容,但你必须尝试一下!

    最好的 ——Amr

    推荐文章