Если у меня есть следующие классыИспользование ассоциаций, таких как прицелов
class User
has_many :documents
end
class Document
belongs_to :user
end
Я хотел бы быть в состоянии сделать следующее
User.where("id > 200").documents
, который должен генерировать SQL как
select * from documents
join users on documents.user_id == users.id
where users.id > 200
но activerecord не настолько умный. Разве это необоснованно ожидать, что это возможно из коробки?
== Возможным анти DRY == решение
class User
has_many :documents
def self.documents
Documents.joins(:users).merge(self.scoped)
end
end
, но это не очень DRY, как это кажется копируют отношения я уже определены.
Это будет возвращать пользователям не документы. – bradgonesurfing
@bradgonesurfing Итак, вы можете изменить его. Я скучаю почитать ваш sql. – xdazz
Более сложный пример. Cities.where (["name like '% me%']). Жители.where ([" id> 200 "]). Документы – bradgonesurfing