2013-03-20 58 views
2

我正在编写一个应用程序,并且我有两个模型,一个Post和一个Tag模型。他们有一个多对多的关联。我想在检索帖子时加载所有帖子的标签,所以我不必运行多次到数据库。在续集中热切地加载多对多关联

的模型看起来大致是这样的(我省略了一些私人资料):

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

除非您急于加载多个帖子,否则在检索帖子时自动加载标签是没有意义的。无论如何,除非您加入,否则它会采用多个查询,并且我认为在考虑Sequel分割JOINed结果所需的额外开销时,JOIN将比两个单独的查询慢。