次のクラスがある場合
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 ではありません。