2013-03-20 3 views
2

Я пишу приложение, и у меня есть две модели - модель Post и Tag. У них есть ассоциация «многие-ко-многим». Я хотел бы загрузить все теги для сообщения при получении сообщения, поэтому мне не нужно запускать несколько попыток в БД.С нетерпением загружайте многие из многих ассоциаций в Sequel

модель выглядит примерно так (я уже опустил некоторые частные детали):

class Post < Sequel::Model 
    many_to_many :tags 
end 

class Tag < Sequel::Model 
    many_to_many :posts 
end 

Я попытался Post.eager_graph(:tags)[id], который имел некоторый успех, но он загружается только первый тегом и приставки всех столбцов тегов имена с tags_ вместо того, чтобы вставлять его в массив или что-то в этом роде. Есть ли способ, чтобы он загружал сразу все теги, или мне нужно будет хранить их отдельные запросы?

Благодарим за помощь!

ответ

2

Если вы не хотите загружать несколько сообщений, нет смысла автоматически загружать теги при получении сообщений. В любом случае, если вы не присоединитесь к JOIN, это займет несколько запросов, и я предполагаю, что JOIN будет медленнее, чем два отдельных запроса при рассмотрении дополнительных накладных расходов, требуемых Sequel для разделения результатов JOINed.

Смежные вопросы