0

我们已经在少数生产应用程序上使用 Rails 5.2RC1 几个星期来测试 ActiveStorage。我们已经能够使用我们的 Heroku 实例(包括 PDF 预览)让一切工作,但现在遇到了一些关于最佳实践的问题。

假设我们有以下模型:

class Contract < ApplicationRecord
  has_many_attached :documents
end

这完美地工作。

但是,现在我们要添加一些关于每个单独文档的附加数据。可能是合同的文档类型或其他类型的元数据。

我们的第一个想法是尝试将其填充到 blob 的元数据属性中,但这感觉不对。

我们的另一个想法是将设计更改为如下所示:

class Contract < ApplicationRecord
  has_many :documents
end

class Document < ApplicationRecord
  belongs_to :contract
  has_many_attached  :files
end

然后使用文档模型来保存有关每个附加文件的信息。假设在此示例中,合同具有原始文档,但将来可能会附加附录,这些附录具有我们想要跟踪的独特属性。

想法?

4

1 回答 1

0

ActiveStorageblobs上的元数据不可查询 ( https://github.com/rails/rails/issues/31780#issuecomment-360356381 ),您不能向它们添加自定义属性。我觉得这有点限制。

似乎解决方案是你的第二个建议,有一个新的模型对象来包装files. 这在这里进一步解释:Rails 5.2 Active Storage add custom attributes

于 2018-05-02T16:14:39.577 回答