这里我有两个模型:用户和书 用户有上传的头像,而Book有上传的封面 我已经阅读了有关上传图片的railscast,但我不知道应该如何处理不同类型的图片? (在这种情况下,用户的头像和书的封面)
我已经查看了论坛的一些开源代码。它使用AvatarUploader和PhotoUploader,用于在帖子中上传照片。
那么,我是否应该为照片和头像使用一个上传器(以及如何?)或者我只是为每个上传器创建2个上传器? 谢谢 !
答案 0 :(得分:7)
使用两个单独的上传器是完全没问题的,即使它们几乎相同。无论如何,它们都延伸CarrierWave::Uploader::Base
,它只是让你的对象保持良好和整齐的命名。
如果您想要在两者中使用某些共享功能并且不想重复,则可以始终编写自己的扩展CarrierWave::Uploader::Base
的类,并继承自上传者的类!
class MyImageUploaderBase < CarrierWave::Uploader::Base
def extension_white_list
%w(jpg jpeg gif png)
end
end
class AvatarUploader < MyImageUploaderBase
...
end