复杂的区域查询

发布于 2024-09-19 06:39:38 字数 124 浏览 2 评论 0原文

我有一个模型,其中一篇文章可以有多个标签(一个标签可以有多个文章)。物品有两个子类:产品和套件。产品有类别,套件没有。

如何获取某个标签(我知道 tag.id)的所有文章(套件和产品),并加载产品类别(避免 n+1)?

I have a model where an article can have multiple tags (and a tag multiple articles). Article has two subclasses, product and kit. Products have a category, kits have not.

How can I get all articles (both kits and products) of a certain tag (I know the tag.id) , with the product's category loaded (avoiding a n+1)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2024-09-26 06:39:38

假设您的关联已设置(即标记 has_many :articles 到article_tags 等),如果您使用的是Rails 3,则在查找时可以使用#includes。将您的 own_to :category 移至您的 Article 类(是的,这样做在语义上是可以的),然后:

@tag = Tag.first
@tag.articles.includes(:category)

应该可以工作。

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-协会

Assuming your associations are already setup (i.e. tag has_many :articles through article_tags, etc.), if you're using Rails 3, you can use #includes when you do your find. Move your belongs_to :category to your Article class (yes, it's semantically okay to do so), then:

@tag = Tag.first
@tag.articles.includes(:category)

Should work.

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文