Стремительная загрузка ассоциаций с использованием MongoMapper - PullRequest
2 голосов
/ 03 сентября 2010

Я пытаюсь загрузить документы, связанные с использованием MongoMapper. Скажем, у меня есть автор с условием: has_one для сообщения, я должен иметь возможность загрузить автора с помощью одного запроса

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

Есть предложения?

1 Ответ

1 голос
/ 23 октября 2010

ОБНОВЛЕНИЕ : приведенный ниже код аналогичен рабочему процессу моделей. Я попробовал его после некоторого кодирования, и он не работал!

Допустим, у вас есть модель 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 пользователя и т. Д.

Я не проверял вышеизложенное, но вы должны попробовать!

Best --Amr

...