动态定义回形针样式大小

Posted

技术标签:

【中文标题】动态定义回形针样式大小【英文标题】:Define paperclip style sizes dynamicaly 【发布时间】:2012-04-23 12:40:23 【问题描述】:

我有一个用户选择模板的应用程序。在此模板上,用户可以上传图像。

我用回形针上传图片。

每个模板都有不同的图像尺寸。

是否可以在回形针中动态设置图像样式 => 'widthxheight'?

我想要这个功能,因为如果用户决定更改模板,那么他们不必再次上传照片,他们只需裁剪“原始”。

感谢您的帮助。

我会尽力解决这个问题。

用户上传页面标题的图像。样式可以称为“标题”,尺寸应该是该标题空间的尺寸,例如“400x600”

现在用户可以查看他们在图库中上传的图片。他们想为他们的页面选择一张图片,但这次是为尺寸为“300x100”的“侧边栏”。我不想让他们再次上传相同的图像。我想创建一个名为“sidebar”的新样式,尺寸为“300x100”。我也不想删除“标题”样式或调整它的大小。

我怎样才能用回形针做到这一点?

【问题讨论】:

我认为this other thread 可能会引起您的兴趣 Christian 非常感谢这对我有帮助。 【参考方案1】:

如果我知道你有这样的想法:Paperclip change size

另外:

attr_accessor :size

...
self.dimensions = self.size.split("x")

控制器:

def create
  ...
  @file.size = params[:size] # OR Simply include such field in form
  ...
end

例子:

型号:

class File
  has_attached_file :upload
  attr_accessor :size
  before_save :extract_dimensions
  serialize :dimensions
  ...
  def extract_dimensions
    ...
    self.dimensions = self.size.split("x")
  end
end

表格:

<form action="some link">
  ...
  <label>Size: </label><select name="file_size">
    <option value="100x200">Large</option>
    ...
  </select>
</form>

【讨论】:

感谢 Eraden 的回答。我希望能够保存具有不同尺寸的不同样式名称。第一次可能有一个样式叫做“header”。因此,对于页眉的尺寸,此样式由回形针保存。如果用户从图像库中选择此图像但希望尺寸不同,那么我想保存具有不同名称和尺寸的不同样式,例如尺寸为“50x50”的“页脚”。这就是我想做的。 按Dimension模型保存尺寸,使用回形针保存图像。使用此模式 U 可以将选择字段中的选项值设置为维度 id||维度名称 [按服务器端 Dimension.find_by_name(...) ] 或创建新的。当你添加新图像时,将他保存为基本(你可以在数据库中添加字段类型或创建树表类型 [parent_id])。当用户将图像转换为不同类型时,只需创建类型为 dimension_id 的新条目。通过这种方式,您可以检查是否有该类型的图片(如果有,则仅获取其 ID)或创建新条目。 更改:删除attr_accessor :size添加belongs_to :dimension添加模型尺寸替换self.dimensions = self.size.split("x")self.dimensions = self.dimension.size.split("x") 如果这个答案不是你所期望的,请给我更多关于电子邮件的信息,因为我真的不明白你想要做什么......我的电子邮件 => adrian.wozniak.1986 @gmail.com 感谢 Eraden 我认为您提供给我的信息为我指明了正确的方向。感谢您的耐心和详细信息。

以上是关于动态定义回形针样式大小的主要内容,如果未能解决你的问题,请参考以下文章

Rails 回形针从其他样式生成缩略图

使用 PropSheetLook_OneNoteTabs 样式动态调整 CMFCPropertySheet 的大小

使用PropSheetLook_OneNoteTabs样式动态调整CMFCPropertySheet的大小

通过 json 数据反应原生动态主题

在回形针中将图像调整为最小尺寸

基于具有多态关联的 paerpclip 中的模型生成不同的图像样式