首页 > 解决方案 > 如何获取与另一组属性关联的一组属性?

问题描述

这应该很简单,但我在寻找答案时遇到了奇怪的麻烦。我只想要一组通过外键关联到另一组记录的记录。例如,如果我通过 Song.artist_id 拥有 Song belongs_to Artist,并且通过 Song.artist_id 拥有一组 Artists Artist.where(mustache: true),我想要一个返回属于所有这些 Artists 的所有歌曲的查询。所以像:

@songs = Artist.where(mustache: true).songs

但这确实有效。

标签: sqlruby-on-railspostgresqlactiverecordarel

解决方案


Song.where(artist_id: Artist.where(mustache: true).select(:id))

或者

song.joins(:artist).where(artists: {mustache: true})


推荐阅读