如何通过关联到达第三张桌子?

时间:2019-03-24 15:27:43

标签: ruby-on-rails

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

Request中有一个project_id,因此在request model中:

belongs_to :project

Order model已连接到Request

belongs_to :request

PaymentRequest

has_many :orders

PaymentRequest模型和其他模型中我应该怎么做才能从project获得Request

所以我想做类似的事情:

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

1 个答案:

答案 0 :(得分:1)

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

或Frederik建议:

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