我们已经在少数生产应用程序上使用 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
然后使用文档模型来保存有关每个附加文件的信息。假设在此示例中,合同具有原始文档,但将来可能会附加附录,这些附录具有我们想要跟踪的独特属性。
想法?