使用相关模型范围的活动记录查询

时间:2020-07-29 12:30:01

标签: ruby-on-rails activerecord associations

模型Food有很多Requests

class Food < ActiveRecord::Base
  has_many :requests
  # scope :where_has_requests, -> { includes(:requests).where.not(requests: { id: nil }) }
end

Requests可能属于User

class Request < ActiveRecord::Base
  # belongs_to :giver, class_name: 'User'
  # belongs_to :receiver, class_name: 'User'
  scope :where_belongs_to, ->(user) { where(giver_id: user.id ).or(where(receiver_id: user.id)) }
end

如何使用请求范围查询具有给定Food的{​​{1}}的{​​{1}}?

Requests

我一直在想这个:

User

但是我迷路了。有想法吗?

通知

我已经见过Rails querying an associated models scope 之前,我已经发布了这个问题,尽管我不太清楚,而且我认为情况有所不同。

1 个答案:

答案 0 :(得分:2)

您可能需要执行以下操作:

Food.joins(:requests).merge(Request.where_belongs_to(user))
相关问题