Активная запись без JOIN - PullRequest
0 голосов
/ 17 июля 2011

у меня

class Autosalon < ActiveRecord::Base
  has_many :autos
end

class Auto < ActiveRecord::Base
  belongs_to :autosalon
end

флаг автосалона активен = 1 и дата регистрации, флаг автосалона активен = 1

Как получить все автомобили с активным флагом в автосалонах с активным флагом без JOIN ?

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

Без каких-либо объединений / включений вы можете использовать запрос SQL in:

Auto.where(:active => 1).where("autosalon_id in (select id from autosalons where active=1)")
1 голос
/ 17 июля 2011

Что-то вроде этого должно сделать это:

active_autosalons = Autosalon.where(:active => 1)
active_autos = Autos.where(:autosalon_id => active_autosalons.map(&:id)).where(:active => 1)

Сначала получите список «активных» автосалонов, затем отфильтруйте авто по идентификаторам автосалонов и активному столбцу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...