我在使用Rails 6.如何获取活动存储中的用户附件的总大小?
======
更新。
如果我有用户A和用户B
如何获取用户A附件的总大小?
如果你想获得与某条记录相关联的所有附件的大小(例如:用户A和用户B),你可以使用以下方法: 1. User.first
),你可以使用这个方法。
ActiveStorage::Attachment.where(record: User.first).map(&:byte_size).sum
例如你的用户 has_many_attached :images
. 在这种情况下,你可以得到这个用户的所有图像的大小为。
User.first.images.map(&:byte_size).sum
使用 include ActionView::Helpers::NumberHelper
你可以将字节大小(整数)转换为人类格式。
number_to_human_size(size_of_all_attachments)
以下是我根据 @Yshmarov 和 @mechnicov 的回答所做的解答
在模型中
after_create_commit :add_user
private
def add_user
files.attachments.update(user_id: self.user.id)
end
在控制器中
@checksize = ActiveStorage::Blob.where(id: current_user.id).map(&:byte_size).sum
鉴于
<%= number_to_human_size(@checksize) %>