如果我有以下類利用協會,如示波器
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
但主動記錄不是那麼聰明。這是一個不合理的事情,希望可以開箱即用嗎?
==一個可能的反解燥==
class User
has_many :documents
def self.documents
Documents.joins(:users).merge(self.scoped)
end
end
但這不是因爲它似乎複製我 已定義的關係非常乾燥。
這會返回用戶不是文檔。 – bradgonesurfing
@bradgonesurfing所以你可以扭轉它。我想念你的SQL。 – xdazz
一個更復雜的例子。 Cities.where([「name like'%me%'])。inhabitants.where([」id> 200「])。 – bradgonesurfing