使用 Ruby on Rails 3.2。我有以下方法来遍历关联以查找照片是否存在:
# Method 1
def trip_photos
if (photos = trip_days.map(&:spots).flatten.map(&:photos).flatten.map)
photos.each do |photo|
photo.url(:picture_preview)
end
end
end
# >> ['picture_1.jpg', 'picture_2.jpg']
# Method 1 view
@object.trip_photos.each do |photo|
photo
end
# Method 2
def trip_photos
if (photos = trip_days.map(&:spots).flatten.map(&:photos).flatten.map)
photos.each do |photo|
photo
end
end
end
# >> [photo_object_1, photo_object_2]
# Method 2 view
@object.trip_photos.each do |photo|
photo.data.url(:picture_preview)
end
Method 1
执行需要 30ms;Method 2
执行需要 400 毫秒。有什么理由吗?我更喜欢,因为我可以从URL 而不是 URL
Method 2
获取更多数据,但它存在性能问题。photo
我该如何解决这个问题?