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_而不是将其放入数组或其他东西中。有没有办法让它一次加载所有标签,还是我必须让它们分开查询?

谢谢你的帮助!

4

1 回答 1

2

除非您急切地加载多个帖子,否则在检索帖子时自动加载标签是没有意义的。无论如何,除非您加入,否则它将需要多个查询,而且我猜测在考虑 Sequel 拆分 JOINed 结果所需的额外开销时,一个 JOIN 将比两个单独的查询慢。

于 2013-03-20T15:04:26.137 回答