1

我终于诊断出一个问题,我一直在查询 activerecord 中的表。而不是使用 Model.all 执行 1 个查询,而是分别调用每个查询。当我注释掉时,该错误已修复

  mount_uploader :image, ImageUploader
  mount_uploader :home_image, HomeImageUploader

由于某种原因 mount_uploader 再次调用每个类实例并减慢我的查询速度。有没有人遇到过类似的问题?我在carrierwave github文档中看到要添加

require 'carrierwave/orm/activerecord'

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

4

2 回答 2

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}"

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

于 2012-07-25T04:47:40.540 回答
0

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

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

做了一些额外的产品模型加载。并且找不到原因(尝试包含、eager_load 等...)))))

我把它改成

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

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

于 2014-10-11T15:45:00.260 回答