Ruby on rails 对Rails中的多个模型使用一个图像上传器(carrierwave)?
这里我有两个模型:用户和书籍 用户有一个头像要上传,而这本书有一个封面要上传 我读过关于上传图片的railscast,但我不知道如何处理不同类型的图片?(在这种情况下,用户的化身和书籍的封面) 我已经查阅了一些论坛的开源代码。它使用了一个头像阅读器和一个照片上传器,用于上传帖子中的照片 那么,我应该为照片和头像使用一个上传器(以及如何使用?),还是只为每个头像创建两个上传器?Ruby on rails 对Rails中的多个模型使用一个图像上传器(carrierwave)?,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,这里我有两个模型:用户和书籍 用户有一个头像要上传,而这本书有一个封面要上传 我读过关于上传图片的railscast,但我不知道如何处理不同类型的图片?(在这种情况下,用户的化身和书籍的封面) 我已经查阅了一些论坛的开源代码。它使用了一个头像阅读器和一个照片上传器,用于上传帖子中的照片 那么,我应该为照片和头像使用一个上传器(以及如何使用?),还是只为每个头像创建两个上传器? 谢谢大家! 使用两个独立的上传器是绝对好的,即使它们几乎相同。它们都扩展了CarrierWave::Uploader::
谢谢大家! 使用两个独立的上传器是绝对好的,即使它们几乎相同。它们都扩展了
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
类MyImageUploaderBaseversion
方法在继承中似乎没有遵循。例如,在头像阅读器中添加version:thumb{process:resize_and_pad=>[45,45]}
[注意,此处的注释格式限制了我的写作]是不受尊重的@rlivsey的要点也说明了这一点。我认为它在MyImageUploaderBase
中也不受尊重。在查看carrierwave代码时,我并不清楚为什么它不会。