我有这个嵌套循环,它深入 4 层以查找所有图像小部件并计算它们的大小。这看起来非常低效和讨厌!我曾考虑将 organization_id 放在小部件模型中,这样我就可以调用类似 organization.widgets.(named_scope) 的东西,但我觉得这是一个糟糕的捷径。有没有更好的办法?谢谢
class Organization < ActiveRecord::Base
...
def get_image_widget_total
total_size = 0
self.trips.each do |t|
t.phases.each do |phase|
phase.pages.each do |page|
page.widgets.each do |widget|
if widget.widget_type == Widget::IMAGE
total_size += widget.image_file_size
end
end
end
end
end
return total_size
end
...
end