ruby-on-rails 如何在Rails模型之间复制Refile附件?

rdlzhqv9  于 2023-07-01  发布在  Ruby
关注(0)|答案(1)|浏览(104)

我使用refile,有两个模型:

class UserApplication < ActiveRecord::Base
  attachment :avatar
end

class User < ActiveRecord::Base
  attachment :avatar

  def from_application(application)
    # ...
    self.avatar = application.avatar
    # ...
  end
end

当我尝试从UserApplication设置User时,与UserApplication关联的avatar附件未与User一起保存。
如何将UserApplication#avatar复制或附加到User示例?

ut6juiuv

ut6juiuv1#

我发现的一种方法是调用附件download方法,然后为附件设置一个新的id。这将复制文件内容,并在保存模型时将avatar保存到新的Refile::File中。

class User < ActiveRecord::Base
  attachment :avatar

  def from_application(application)
    self.avatar = application.avatar.download
    self.avatar_id = SecureRandom.alphanumeric(60).downcase
    save
  end
end

我使用的是Refile 0.7.0和refile-s3。

相关问题