例如我有模型
class User < ApplicationRecord
has_one_attached :avatar
has_one_attached :diploma
has_many_attached :photos
has_many_attached :files
end
如何获取某些型号的附件名称列表(分别用于
has_one_attached
和 has_many_attached
)?[:avatar, :diploma]
和 [:photos, :files]
在这种情况下。
最佳答案
一个不依赖于命名约定的解决方案,它将根据 Rails 自己的内部结构为您提供所需的内容:
has_one_attached
User
.reflect_on_all_attachments
.filter { |association| association.instance_of? ActiveStorage::Reflection::HasOneAttachedReflection }
.map(&:name)
has_many_attached
User
.reflect_on_all_attachments
.filter { |association| association.instance_of? ActiveStorage::Reflection::HasManyAttachedReflection }
.map(&:name)
关于ruby-on-rails - 如何获取 ActiveStorage 属性列表(附件名称)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56484599/