質問

MongoMapperを使用して関連ドキュメントを積極的にロードしたいと考えています。投稿に対して :has_one 条件を持つ著者がいるとします。単一のクエリを使用して著者をロードできるはずです

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

助言がありますか?

役に立ちましたか?

解決

アップデート:以下のコードは、ワークフローのモデルと同じです。コーディング後に試してみましたが、うまくいきませんでした。

Post モデルと User モデルがあるとします。

ユーザーには_many の投稿があり、すべてのユーザー (作成者) の投稿が必要です。

ここにそれを扱うためのヒントがあります。私の例は 1 つの投稿を取得しています。

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、ユーザースラッグなどのほとんどの一般的なフィールドを埋め込むことです。

上記の内容はテストしませんでしたが、ぜひ試してみてください。

Best -Amr

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top