0

我有以下内容:

class OfferClaim
 belongs_to :offer
end

class Offer
  has_many :offer_claims
  attr_accessible :claim_limit
end

我需要能够做这样的事情:

Offer.joins(:offer_claims).where("offer.claim_limit > offer_claims.count")

并且只返回关联少于其限制的报价。

4

1 回答 1

1

这听起来像是counter_cache.

class OfferClaim
  belongs_to :offer, :counter_cache => true
end

每当创建新列时,这将增加表offer_claim_count上的一列(并在删除时减少它)。offersOfferClaim

那么您的查询将是:

Offer.where("offer.claim_limit > offer_claims_count")

无需joins声明。

于 2013-07-03T00:32:14.307 回答