基于多态模型属性使用回形针创建不同样式的图像附件?

create different styled image attachments with paperclip based on polymorphic model attribute?

我正在使用多态图片模型将图像与其他模型(如用户、地点等)关联起来。

作为回形针文档,图片模型可以使用以下方式定义一组样式:

has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }

但是作为多态的并且关联到不同的模型,每个条目所需的样式将不同。要解决这个问题,我该如何即时设置自定义样式?

我们使用类似于您所指的东西。

--

我们在config/application.rb文件中设置Paperclip defaults

#config/application.rb
...

config.paperclip_defaults = {
   styles: { :large => "x850", :medium => "x450", :thumb => "x200"},
   default_url: "layout/placeholders/:style/placeholder.png"
}

这设置了一组 默认 样式集,可以在模型本身中覆盖这些样式。

然后我们使用asset模型(带有相应的数据库)来保存所有数据。这个 asset 模型然后将 url 方法(对于 Paperclip)委托给它的依赖模型。

多态关联的原始代码是here

--

因为回形针样式是默认值,您可以根据需要在任何依赖模型中覆盖它们。