【问题标题】:create different styled image attachments with paperclip based on polymorphic model attribute?使用基于多态模型属性的回形针创建不同样式的图像附件?
【发布时间】:2016-02-16 14:47:42
【问题描述】:
我正在使用多态图片模型将图像与用户、地点等其他模型相关联。
作为回形针文档,图片模型可以使用以下方法定义一组样式:
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
但是作为一个多态的并且与不同的模型相关联,每个条目所需的样式将是不同的。要解决这个问题,我该如何动态设置自定义样式?
【问题讨论】:
标签:
ruby-on-rails
paperclip
attachment
【解决方案1】:
我们使用您所指的内容。
--
我们在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。
--
因为回形针样式是默认值,您可以根据需要在任何依赖模型中覆盖它们。