回答
要做到这一点,您需要将您的附件分解成自己的模型。
那么,你可能现在有
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