1

我终于诊断出一个问题,我一直在查询activerecord中的表。而不是使用Model.all执行1个查询,而是分别调用每个查询。当我注释掉Carrierwave和Activerecord多个查询

mount_uploader :image, ImageUploader 
    mount_uploader :home_image, HomeImageUploader 

出于某种原因mount_uploader再次调用每一个类实例的BUG,减缓我的查询。有没有人有类似的问题?我在载波github文档中看到添加

require 'carrierwave/orm/activerecord' 

我的模型类,但没有任何帮助。此外,在carrierwave文档中对此行感到困惑,“请确保在加载ORM后加载CarrierWave”。任何建议将不胜感激,谢谢。

回答

2

我终于找到了这个bug,所有这些额外查询的人服用,因为它是如何设置我的store_dir在我上传

"images/#{Rails.env}/#{model.class.to_s.underscore}/#{model.class.find(model.id).name}" 

保持加载模型来得到它的名字的地方。我改成

"images/#{Rails.env}/#{model.class.to_s.underscore}/#{model.id}" 

它解决了我的查询问题。我希望这可以帮助其他人。

0

我有同样的问题。在上传者代码中:

def store_dir 
    "uploads/products/#{model.product.id}" 
end 

对产品模型做了一些额外的加载。而找不到原因(包括尝试,eager_load等...)))))

我改成了

def store_dir 
    "uploads/products/#{model.product_id}" 
end 

它解决了这个问题。感谢您的指导。