Ruby on rails Carrierwave和Activerecord多个查询

Ruby on rails Carrierwave和Activerecord多个查询,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.1,carrierwave,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 3.1,Carrierwave,我终于诊断出了在activerecord中查询表时遇到的一个问题。它没有对Model.all执行1个查询,而是分别调用每个查询。当我注释掉这个错误时,它被修复了 mount_uploader :image, ImageUploader mount_uploader :home_image, HomeImageUploader 出于某种原因,mount_uploader再次调用了每个类实例,从而减慢了我的查询速度。有没有人有过类似的问题?我在carrierwave github中看到了要

我终于诊断出了在activerecord中查询表时遇到的一个问题。它没有对Model.all执行1个查询,而是分别调用每个查询。当我注释掉这个错误时,它被修复了

  mount_uploader :image, ImageUploader
  mount_uploader :home_image, HomeImageUploader
出于某种原因,mount_uploader再次调用了每个类实例,从而减慢了我的查询速度。有没有人有过类似的问题?我在carrierwave github中看到了要添加的文档

require 'carrierwave/orm/activerecord'

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

我终于找到了这个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}"
def store_dir
  "uploads/products/#{model.product_id}"
end

它解决了我的疑问。我希望这对以后的其他人有所帮助。

我也有同样的问题。在上传程序代码中:

def store_dir
  "uploads/products/#{model.product.id}"
end
对产品模型进行了一些额外加载。并且找不到原因(尝试包括,渴望加载等…)“”)

我把它改成了

"images/#{Rails.env}/#{model.class.to_s.underscore}/#{model.id}"
def store_dir
  "uploads/products/#{model.product_id}"
end
它解决了这个问题。谢谢你的指导