Ruby 如何避免N+;1与DataMapper聚合
如果我有一个Foo类型的模型,它有许多Bar类型的子记录,我希望能够显示Foo记录的列表并显示子Bar记录的数量。所以我有点像Ruby 如何避免N+;1与DataMapper聚合,ruby,datamapper,Ruby,Datamapper,如果我有一个Foo类型的模型,它有许多Bar类型的子记录,我希望能够显示Foo记录的列表并显示子Bar记录的数量。所以我有点像 @foos.each do |foo| puts foo.name puts foo.bars.count end 我如何避免在我的聚合上出现错误?换句话说,我不希望每行都有一个新的selectcount(*)…查询。我可以简单地创建一个SQL视图并将其映射到一个新的模型,但有没有更简单的方法?DataMpper在这些事情上是变化无常的,所以我将给您一些选项来
@foos.each do |foo|
puts foo.name
puts foo.bars.count
end
我如何避免在我的聚合上出现错误?换句话说,我不希望每行都有一个新的
selectcount(*)…
查询。我可以简单地创建一个SQL视图并将其映射到一个新的模型,但有没有更简单的方法?DataMpper在这些事情上是变化无常的,所以我将给您一些选项来尝试,这可能会根据实际代码的外观而起作用
@foos = Foo.all(...)
@foos.bars.to_a
@foos.each do | foo |
puts foo.name
puts foo.bars.size
end