【问题标题】:recreate_versions! using the unique filename method stated in the wiki重新创建版本!使用 wiki 中所述的唯一文件名方法
【发布时间】:2011-12-03 21:35:57
【问题描述】:

我正在尝试使用method recreate_versions!,但我正在使用 wiki 中的方法来创建唯一的文件名。问题是,当我运行recreate_versions! 时,它会更改文件名,但不会在已安装对象本身上更新它们。如何刷新这些 URL?

【问题讨论】:

    标签: ruby rubygems carrierwave


    【解决方案1】:

    在处理缓存时有效的解决方案是在重新创建版本后保存已安装的对象:

    例子:

    avatar.image.recreate_versions!
    avatar.save!
    

    这样,即使在重新创建版本并正确处理缓存时,您也可以继续使用唯一的文件名。

    【讨论】:

      【解决方案2】:

      这对我有用。如果文件名已经存在,它将使用该文件名。所以当你 recreate_versions 时它们不会改变!

      def filename
        if original_filename
          if model && model.read_attribute(:avatar).present? #or whatever you call your column
            model.read_attribute(:avatar)
          else
            # create new filename however you're doing it
          end
        end
      end
      

      【讨论】:

      • 问题是唯一的文件名通常是用来处理文件缓存的,这样做仍然会在执行 recreate_versions 时指向相同的 URL!因此返回缓存的值而不是新的值。
      猜你喜欢
      • 2011-10-18
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 2020-02-17
      • 1970-01-01
      相关资源
      最近更新 更多