首页 > 解决方案 > 我怎样才能到有关联的第三张桌子?

问题描述

一个流程有一个Request,然后在批准后,Order创建一个。最后,客户得到了PaymentRequest他所下的订单。

在 中Request,有一个project_id,所以在 中request model

belongs_to :project

Order model连接到Request一个:

belongs_to :request

每一个PaymentRequest

has_many :orders

我应该在PaymentRequest模型和其他模型中做什么,这样我才能得到projectfrom Request

所以我想做类似的事情:

PaymentRequest.where("requests.project_id = ?").joins(???)

标签: ruby-on-rails

解决方案


PaymentRequest.joins(orders: :request).where("requests.project_id = ?", some_id)

或按照弗雷德里克的建议:

PaymentRequest.joins(orders: :request).where(requests: { project_id: some_id })

推荐阅读