Ruby on rails 对Rails中的多个模型使用一个图像上传器(carrierwave)?

Ruby on rails 对Rails中的多个模型使用一个图像上传器(carrierwave)?,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,这里我有两个模型:用户和书籍 用户有一个头像要上传,而这本书有一个封面要上传 我读过关于上传图片的railscast,但我不知道如何处理不同类型的图片?(在这种情况下,用户的化身和书籍的封面) 我已经查阅了一些论坛的开源代码。它使用了一个头像阅读器和一个照片上传器,用于上传帖子中的照片 那么,我应该为照片和头像使用一个上传器(以及如何使用?),还是只为每个头像创建两个上传器? 谢谢大家! 使用两个独立的上传器是绝对好的,即使它们几乎相同。它们都扩展了CarrierWave::Uploader::

这里我有两个模型:用户和书籍 用户有一个头像要上传,而这本书有一个封面要上传 我读过关于上传图片的railscast,但我不知道如何处理不同类型的图片?(在这种情况下,用户的化身和书籍的封面)

我已经查阅了一些论坛的开源代码。它使用了一个头像阅读器和一个照片上传器,用于上传帖子中的照片

那么,我应该为照片和头像使用一个上传器(以及如何使用?),还是只为每个头像创建两个上传器?
谢谢大家!

使用两个独立的上传器是绝对好的,即使它们几乎相同。它们都扩展了
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
类MyImageUploaderBase如何处理什么?你能解释一下你的问题到底出在哪里吗?使用两个不同的上传器或一个上传器用于不同的型号没有任何问题。嗯……我不确定是否单独使用两个上传器,或者两个都只使用一个上传器。请注意一些继承陷阱,例如在上传器中使用
version
方法在继承中似乎没有遵循。例如,在
头像阅读器中添加
version:thumb{process:resize_and_pad=>[45,45]}
[注意,此处的注释格式限制了我的写作]是不受尊重的@rlivsey的要点也说明了这一点。我认为它在
MyImageUploaderBase
中也不受尊重。在查看carrierwave代码时,我并不清楚为什么它不会。