我终于诊断出我在activerecord中查询表时遇到的问题。而不是使用Model.all执行1个查询,而是分别调用每个查询。当我发表评论
时,错误已修复 mount_uploader :image, ImageUploader
mount_uploader :home_image, HomeImageUploader
由于某种原因,mount_uploader再次调用每个类实例并减慢查询速度。有人有过类似的问题吗?我在carrierwave github docs中看到了添加
require 'carrierwave/orm/activerecord'
到我的模型课但是没有任何帮助。另外,对于载波文档中的这一行感到困惑,“确保在加载ORM后加载CarrierWave”。任何建议都将非常感谢,谢谢。
答案 0 :(得分:2)
我终于找到了这个错误,所有这些额外的查询都是因为我在我的上传程序中设置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}"
它解决了我的查询问题。我希望这可以帮助其他人。
答案 1 :(得分:0)
我遇到了同样的问题。在上传代码中:
def store_dir
"uploads/products/#{model.product.id}"
end
制作了一些额外的产品型号。并且无法找到原因(尝试包括,eager_load等...)))))
我把它改成了
def store_dir
"uploads/products/#{model.product_id}"
end
它解决了这个问题。谢谢你的指导。