首页 > 解决方案 > 使用 ActiveRecord 查询记录列表,其中每个项目的外键都存在于哈希中

问题描述

我有四个模型——用户、代理、列表和查询。

用户has_one代理、代理has_many列表和列表has_many查询。

我有一个查询,我在哪里得到 a :user_id,所以我可以得到它的代理和列表集合。

我需要属于某个列表的查询。

我的方法如下,显然我正在寻找all. 我想做一个查询,我可以在其中列出所有查询,其中:listing_id一个列表的 id 是@listings.

  def index
    @agency = User.find(params[:user_id]).agency
    @listings = @agency.listings

    @inquiries = Inquiry
      .all

    render json: @inquiries
  end

我尝试结合各种select, includes,where等方法,但无法提出可行的解决方案。

感谢您的帮助,非常感谢!

标签: ruby-on-railsrubypostgresqlactiverecordrails-activerecord

解决方案


我们可以在单个查询中使用多个连接来达到结果关联。

def index
  @inquiries = Inquiry.joins(listing: { agency: :user }).where(users: { id: params[:user_id] })

 render json: @inquiries
end

推荐阅读