MongoMapper を使用した関連付けの積極的な読み込み
-
26-09-2019 - |
質問
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
所属していません StackOverflow