如何在Rails中使用ActiveRecord查询关联的关联?

时间:2019-11-22 14:40:39

标签: ruby-on-rails activerecord

我有以下模型和关联:

  • 组织,其中has_many 食谱
  • 食谱 has_many 标签

我正在尝试获取与组织的所有配方相关的所有标签。我想做类似Organization.find(1).recipes.tags的操作,但是它不起作用。是否有一种更简单的方法来查询此内容,而不是遍历每个配方来收集其标签?

2 个答案:

答案 0 :(得分:2)

您需要在organization_id上使用联接和过滤器

Tag.joins(recipies: :organization).where('recipies.organization_id' => 1)

答案 1 :(得分:1)

尝试:

Tag.where(recipe: Organization.find(1).recipes)

假设为Tag belongs_to :recipe