【问题标题】:With Rails Paperclip gem, how to temporarily save the uploaded file if the model is invalid使用Rails Paperclip gem,如果模型无效,如何临时保存上传的文件
【发布时间】:2023-03-09 01:13:01
【问题描述】:

我正在使用回形针 gem 将文件附加到模型。使用 Paperclip 上传文件时,仅在保存模型时才会保存文件。因此,如果模型无效,则不会保存上传的文件。有没有办法暂时保存上传的文件,这样如果模型无效用户就不用上传同一个文件了?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    定义一个before_save 方法来检查对象是否有效, 如果不将文件保存到磁盘,请给它一个唯一的名称(创建一些哈希)

    把你发回的表格放在一个隐藏字段中

    删除表单中的上传字段

    现在在 before_save 方法的 else 分支中检查是否有 hidden_field previous_upload 或者你命名它 如果有加载图片并赋值给回形针属性,剩下的就可以算出来了

    attr_accessor :previous_upload
    
    def before_save
      if valid?
        if previous_upload
          paperclip_file = #Load paperclip_file from /tmp
        else
          previous_upload = nil
        end
      else
        previous_upload = "Some unique key for each upload like ip and time or such"
        # Save paperclip_file with name previous_upload to /tmp
      end
    end 
    

    【讨论】:

    • 感谢您的想法。我会试试看:)
    猜你喜欢
    • 2014-07-17
    • 2012-03-10
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多