0

私は2つのモデルを持っています

class User
has_many :cars
end

class Car
belongs_to :user
end

任意のユーザー属性を実行User.where(...)およびテストできます

関係の属性をテストするにはどうすればよいですか? たとえば、私はやりたいです'get all users where user.car.color = green'か?また'get all users which have more than two cars'

4

2 に答える 2

2

使用joins:

User.joins(:cars).where('cars.color' => 'green')

そして2番目のものについて:

User.joins(:cars).group('users.id HAVING count(cars.id) > 2')

そして、それらをまとめる:

User.joins(:cars)
    .group('users.id HAVING count(cars.id) > 2')
    .where('cars.color' => 'green')

関連項目:関連付けの数を条件とする Rails 3 クエリ

于 2013-01-06T13:12:06.070 に答える
1

このようなものはうまくいくはずです:

User.include(:cars).where("cars.color" => "green")
于 2013-01-06T13:16:04.623 に答える