首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重用Rails 6中的附件?

重用Rails 6中的附件?
EN

Stack Overflow用户
提问于 2022-07-26 07:10:03
回答 1查看 48关注 0票数 0

我有一个模型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:预期可附加性“时失败了:

代码语言:javascript
复制
...
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

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 09:31:34

说你有模型Userhas_one_attached :avatar

您只需将一条记录作为副本附加到另一条记录。小心,如果删除一个记录中的附件,它将在另一个记录中不可用。

代码语言:javascript
复制
user_second.avatar.attach(user_first.avatar.blob)

user_second.avatar.blob.id == user_first.avatar.blob.id
# true

要创建单独的副本,您需要读取文件并将其作为新附件附加。这样,附件就不同了。

代码语言:javascript
复制
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
# false
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73119073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档