2

给定以下两个模型:

class Wheel
  belongs_to :car

  def self.flat
    where(flat: true)
  end

class Car
  has_many :wheels

  def flats
    self.wheels.flat
  end

  def has_flats?
    flats.count > 0
  end

我需要查询所有轮胎漏气的汽车。我想知道为什么这在汽车模型中不起作用?:

def self.with_flats
  where(:has_flats?)
end

或者

def self.with_flats
  where(:has_flats? == true)
end

这没有返回正确的记录。有任何想法吗?

4

1 回答 1

2

在 Car 模型中定义范围:

class Car
  has_many :wheels

  scope :having_flat_wheels, joins(:wheels).where("wheels.flat=?", true).uniq
  ......
end  

然后让所有轮胎漏气的汽车:

Car.having_flat_wheels
于 2013-08-23T21:01:28.657 回答