我可以在 Paperclip 中获得可用的照片样式吗?
Can I get available photo styles in Paperclip?
我有一些不同的样式(大小),所以我想在文本编辑器附近回显所有样式,供用户选择一个并在文本中使用。
为此,我需要获取模型中所有已定义的样式。我怎样才能做到这一点? (我需要一个自动化的方式,因为样式可能会改变)
# Photo
has_attached_file :photo, :styles => {
:sthumb => "150x150>",
:crop => "200x200#",
:thumb => "300x300>",
:small => "500x500>",
:large => "900x900>",
:xlarge => "2600x2600>"
},
:default_url => "missing.png",
:url => "/items/:id/:style.:basename.:extension"
无需将样式定义直接传递给 has_attached_file
方法,您可以将它们存储在常量中,并在显示样式列表时也使用它。
像这样:
# Photo
DEFINED_STYLES = {
:sthumb => "150x150>",
:crop => "200x200#",
:thumb => "300x300>",
:small => "500x500>",
:large => "900x900>",
:xlarge => "2600x2600>"
}
has_attached_file :photo, :styles => DEFINED_STYLES,
:default_url => "missing.png",
:url => "/items/:id/:style.:basename.:extension"
然后你可以简单地在其他地方使用相同的常量,例如在您看来:
<%= Photo::DEFINED_STYLES.keys.map(&:to_s).join(", ") %>
另一种选择
此外,Paperclip 样式可以从模型实例本身获取,无需定义常量,只需:
Photo.new.photo.styles.keys
=> [:sthumb, :crop, :small, :large, :xlarge]
其中 photo
是 has_attached_file
中使用的回形针附件的名称。
我有一些不同的样式(大小),所以我想在文本编辑器附近回显所有样式,供用户选择一个并在文本中使用。
为此,我需要获取模型中所有已定义的样式。我怎样才能做到这一点? (我需要一个自动化的方式,因为样式可能会改变)
# Photo
has_attached_file :photo, :styles => {
:sthumb => "150x150>",
:crop => "200x200#",
:thumb => "300x300>",
:small => "500x500>",
:large => "900x900>",
:xlarge => "2600x2600>"
},
:default_url => "missing.png",
:url => "/items/:id/:style.:basename.:extension"
无需将样式定义直接传递给 has_attached_file
方法,您可以将它们存储在常量中,并在显示样式列表时也使用它。
像这样:
# Photo
DEFINED_STYLES = {
:sthumb => "150x150>",
:crop => "200x200#",
:thumb => "300x300>",
:small => "500x500>",
:large => "900x900>",
:xlarge => "2600x2600>"
}
has_attached_file :photo, :styles => DEFINED_STYLES,
:default_url => "missing.png",
:url => "/items/:id/:style.:basename.:extension"
然后你可以简单地在其他地方使用相同的常量,例如在您看来:
<%= Photo::DEFINED_STYLES.keys.map(&:to_s).join(", ") %>
另一种选择
此外,Paperclip 样式可以从模型实例本身获取,无需定义常量,只需:
Photo.new.photo.styles.keys
=> [:sthumb, :crop, :small, :large, :xlarge]
其中 photo
是 has_attached_file
中使用的回形针附件的名称。