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

时间:2015-11-15 12:14:14

标签: ruby-on-rails paperclip attachment

我正在使用多态图片模型将图像与User,Place等其他模型相关联。

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

  

has_attached_file:avatar,:styles => {:medium => “300x300>”,:thumb => “100×100>” 中}

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

1 个答案:

答案 0 :(得分:0)

我们使用的是你所指的东西。

-

我们在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模型(带有相应的DB)来保存所有数据。然后,此asset模型将url方法(对于Paperclip)委托给其依赖模型。

enter image description here

enter image description here

enter image description here

enter image description here

多态关联的原始代码是here

-

由于Paperclip样式是默认值,您可以根据需要在任何相关模型中覆盖它们。