0

在我的应用程序中,我将 CarrierWave 用于文件附件。我有一个 FileAttachment 模型,可以通过以下方式获取文件的大小:

file = FileAttachment.first
file.attachment.size

在 Rails 查询中,您可以通过以下方式对列求和:

Model.sum(:integer_column)

使用 CarrierWave,该.attachment方法返回对象,其值为.size.

我该如何sum查询FileAttachment.attachment.size

现在,这是我的解决方案:

FileAttachment.sum { |file_attachment| file_attachment.attachment.size }

我想知道是否有更好的方法来做到这一点。

4

1 回答 1

1

我不确定我是否理解你的问题。您想对某个资源的所有附件的大小求和。我猜您想执行以下操作:your_resource.file_attachments.map{|fa| fa.attachment&.size}.compact.sum

于 2019-08-13T00:26:08.273 回答