【问题标题】:Updating paperclip filename after renaming model?重命名模型后更新回形针文件名?
【发布时间】:2016-07-13 20:08:56
【问题描述】:

重命名模型并更新表名后,如何更新所有回形针对象的文件名?

Paperclip 将它们存储在包含模型名称的路径中。我正在寻找一种可能在更新文件路径的迁移中的自动​​方式。

【问题讨论】:

  • 您需要更新记录吗?因为您可以选择覆盖回形针用于保存的类名,并且您不必更改数据
  • 我需要重命名它们并将名称用于另一个模型。

标签: ruby ruby-on-rails-4 paperclip


【解决方案1】:

您必须将新的url 的选项传递给方法:

这是 PaperClip 使用的默认值:

https://github.com/thoughtbot/paperclip/blob/95acf3b898bd782f4429d42fd2d8812505390328/lib/paperclip/attachment.rb#L24

{
  path: ':rails_root/public:url',
  url: '/system/:class/:attachment/:id_partition/:style/:filename'
}

您必须覆盖该行为并将 :class 更改为您的新模型名称,路径是通过 url 动态确定的:

class User < ActiveRecord::Base
  has_attached_file :avatar, url: '/system/:class/:attachment/:id_partition/:style/:filename' 
end

在其他模型中使用旧模型名称时必须小心,除非您还覆盖其他模型 url 选项。

【讨论】:

  • attachment_file_name 只包含文件名而不是实际路径。
猜你喜欢
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多