Ruby on rails 如何在子数据库的子数据库中搜索字段?家长>;儿童>;小孩

Ruby on rails 如何在子数据库的子数据库中搜索字段?家长>;儿童>;小孩,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我的数据库结构如下: 交付: 身份证 用户id 用户: 身份证 公司id 公司: 身份证 名字 现在,我正在构建一个配送搜索查询: elsif params[:option] == "company_name" @deliveries = Delivery.joins(company: :user) .paginate(:page => params[:page], :per_page => 20) .where("company.name LI

我的数据库结构如下:

交付:

  • 身份证
  • 用户id
用户:

  • 身份证
  • 公司id
公司:

  • 身份证
  • 名字
现在,我正在构建一个配送搜索查询:

elsif params[:option] == "company_name"

    @deliveries = Delivery.joins(company: :user)
    .paginate(:page => params[:page], :per_page => 20)
    .where("company.name LIKE ?", "%#{params[:q]}%")
    .order("created_at DESC")

现在,这是行不通的。我想做的是根据公司名称过滤发货。我该怎么做?在子级的子级中搜索字段?

这是因为您需要提供表名作为
公司
,并通过
用户
加入
公司

elsif params[:option] == "company_name"

    @deliveries =
      Delivery.joins(user: :company)
        .paginate(:page => params[:page], :per_page => 20)
        .where("companies.name LIKE ?", "%#{params[:q]}%")
        .order("created_at DESC")

什么不起作用?有错误吗?@THpubs将这一行替换为
。where(“company.name LIKE?”,“%#{params[:q]}%”
。where(“companys.name LIKE?”,“%#{params[:q]}%”因为需要使用表名而不是模型名。