如果我有两个模型 - parent
和child
,以及父母has_many孩子,并且我有一系列父母并想要为所有这些父母检索所有孩子,那么是否有我可以在Rails中执行此操作而无需手动编写SQL语句吗?
这就是我想要做的事情:
@parents = Parent.where("[various conditions]")
@children = @parents.children
答案 0 :(得分:6)
Child.where(:parent_id => @parents.pluck(:id))
或
@parent_ids = Parent.where("[various conditions]").pluck(:id)
Child.where(:parent_id => @parent_ids}
或者你可以使用join
Child.join(:parent).merge(Parent.where("[various conditions]")) #!!readonly