回答
要做到這一點,您需要將您的附件分解成自己的模型。
那麼,你可能現在有
class User < ActiveRecord::Base
has_attached_file :avatar #plus a bunch of specifications here
end
你會建立一個新的模型和協會,如
class User < ActiveRecord::Base
belongs_to :images
end
class Image < ActiveRecord::Base
has_many :users
has_attached_file :avatar
end
然後在你的控制器,你需要做的
Image.find_or_create_by_avatar_file_name(#filename here)
所以現在你有一個user.image_id屬性,並可以有一個上傳的圖像與多個用戶相關聯。但是,我已經構建了一些用戶照片上傳(徽章照片,頭像照片,有趣照片等)的相當大的系統,用戶之間的實際重疊往往很小。此外,您真的只需要節省資源中最便宜的資源:存儲空間。通過走這條路線,您不會節省任何帶寬成本,處理或程序複雜性。
除非這是一個非常獨特的環境(在這種情況下,聽到你在做什麼會很整潔),否則我會建議不要去這條路線。
計算每個圖像在保存時的散列值。當新用戶帖子相同的圖像,檢查圖像的哈希值,看看它是否在
是的,這是我的想法,但我只是害怕做一個圖像上的哈希每個時間之前保存一個會有點緩慢(但沒有嘗試) – Mike 2009-10-27 21:48:06
http://www.codeproject.com/Messages/2913691/Comparing-one-image-to-many-others-speeded-up.aspx
我用它在我的程序和所有罰款數據庫匹配任何東西!
DB相關建議:在表中存儲散列值。然後你只需要一個散列計算。
關於速度
1)約束圖像尺寸100×100例如
2)當用戶嘗試登錄時,他的密碼哈希計算。我認爲用戶會更頻繁地登錄,然後更新他們的頭像。
這是有道理的,我會嘗試今天晚上, 謝謝 – Mike 2009-10-27 22:01:02
- 1. 重命名圖像 - 回形針
- 2. 回形針 - 存儲圖像
- 3. 回形針不croping圖像
- 4. Rails回形針檢查時,回形針添加圖像大小
- 5. 在回形針中使用回形針丟失圖像
- 6. 回形針重複的網址錯誤
- 7. 回形針上傳多個圖像,重命名名稱「頭像」
- 8. Rails多圖像上傳(回形針,carrerwave)
- 9. 回形針圖像碎在導軌3.1rc4
- 10. 使用回形針刪除圖像
- 11. 回形針S3下載遠程圖像
- 12. 用回形針遠程圖像上傳
- 13. 僅回形針處理圖像
- 14. RMagick mask回形針圖像附件
- 15. accepts_nested_attributes_for不節能回形針圖像
- 16. 回形針大小的圖像符號
- 17. 回形針多圖像上傳
- 18. Rails回形針圖像到AXSLX文件
- 19. Rails 3 - 回形針圖像旋轉?
- 20. 用回形針實現圖像庫
- 21. 用回形針保存base64圖像
- 22. 使用回形針保存圖像
- 23. 回形針不顯示圖像
- 24. 刪除圖像用回形針
- 25. 軌回形針較小的圖像
- 26. 檢索回形針圖像的尺寸
- 27. Rails /回形針 - 跳過圖像處理
- 28. 種子圖像與回形針
- 29. 回形針S3圖像路徑問題
- 30. 回形針不上傳圖像[增訂]
只是爲了確保,但是您確定要這麼做嗎?文件如何被刪除?兩個用戶鏈接到同一個文件有意義嗎? – JRL 2009-10-27 21:50:51
我以用戶爲例,但在我的情況是這是有道理的,但你是正確的這是一個不好的例子,只是有點懶惰解釋一切^^ – Mike 2009-10-27 21:53:09