我有一个模型OutInvoice,它将附件存储在属性physical_copy中。按照Rails标准,一切都很好。
现在,我想在InInvoice.physical_copy中重用这个附件(或者这个InInvoice.physical_copy的一个副本,只要删除合作伙伴记录没有删除附件,但是它保持与合作伙伴和新记录的连接)就不重要了。
所以就像
in_invoice.update!(physical_copy: out_invoice.physical_copy)
我在rails模型中尝试了以下操作,但是在"ArgumentError in Home::InvoicesController#freeze -未能找到或构建blob:预期可附加性“时失败了:
...
in_invoice.save!
in_invoice.physical_copy.attach(the_physical_out_invoice)
...
def the_physical_out_invoice
physical_copy.attachment
end对于如何在另一个模型中重用这个Rails附件,获得编码支持是很好的。
PS:我正在使用Rails 6.0.3和Ruby2.6.6
发布于 2022-07-26 09:31:34
说你有模型User和has_one_attached :avatar
您只需将一条记录作为副本附加到另一条记录。小心,如果删除一个记录中的附件,它将在另一个记录中不可用。
user_second.avatar.attach(user_first.avatar.blob)
user_second.avatar.blob.id == user_first.avatar.blob.id
# true要创建单独的副本,您需要读取文件并将其作为新附件附加。这样,附件就不同了。
user_second.avatar.attach(io: StringIO.new(user_first.avatar.download), filename: user_first.avatar.filename)
user_second.avatar.blob.id == user_first.avatar.blob.id
# falsehttps://stackoverflow.com/questions/73119073
复制相似问题