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 

它解決了這個問題。感謝您的指導。