ruby-on-rails Rails活动存储,查询blob文件名

vawmfj5a  于 2023-03-09  发布在  Ruby
关注(0)|答案(2)|浏览(146)

如何查找已知活动存储blob文件名的记录?
基本上寻找所有不明显的连接快捷方式。

ioekq8ef

ioekq8ef1#

我想出来了...

已附加一个

class Report < ApplicationRecord
  has_one_attached :backup
end

然后您可以查询blob:

Report.joins(:backup_blob).where("active_storage_blobs.filename LIKE ?", "%query%").count

已附加多个

class Report < ApplicationRecord
  has_many_attached :backups
end

然后您可以查询blob:

Report.joins(:backups_blobs).where("active_storage_blobs.filename LIKE ?", "%query%").count

您还可以按content_typebyte_sizechecksum查询blob

7d7tgy0s

7d7tgy0s2#

来自Blair安德森示例,但使用了Arel语法

filename_substring = "2023"

# has_one_attached :backup
Report.joins(:backup_blob).where(ActiveStorage::Blob.arel_table[:filename].matches("%#{filename_substring}%"))

# has_many_attached :backups
Report.joins(:backups_blobs).where(ActiveStorage::Blob.arel_table[:filename].matches("%#{filename_substring}%"))

相关问题