【问题标题】:Rails ActiveStorage versioning (with paper_trail or somthing like that)Rails ActiveStorage 版本控制(使用 paper_trail 或类似的东西)
【发布时间】:2021-10-28 05:00:03
【问题描述】:

我有一个用户模型,它有一个图像。

class User < ApplicationRecord
  has_paper_trail
  has_one_attached :image
end

我决定使用 paper_trail gem,因为我需要对用户属性进行版本控制。 但是,我注意到我不知道如何获取图像的版本信息。

  PaperTrail::Version.where(item_type: "User").first.object
=> "---\nemail:XXXX\n'\ncreated_at: 2021-10-28 13:06:15.206202000\nupdated_at: 2021-10-28 13:06:19.789124000\n"

还有其他人知道如何获取以前版本的 ActiveStorage 吗? 我正在使用paper_trail gem,所以如果paper_trail可以做到最好。

【问题讨论】:

  • has_one_attached 是一个关联。 PaperTrail 不记录关联数据。您可以编写自定义metadata,或者您可以尝试paper_trail-association_tracking 插件。
  • 你向我展示了一个非常简单但非常棒的想法。谢谢。

标签: ruby-on-rails rails-activestorage paper-trail-gem


【解决方案1】:

好的,我参加聚会有点晚了,但我发现需要对我的 ActiveStorage 模型进行版本跟踪。这对我有用:

  1. /config/initializers 中创建一个名为active_storage.rb 的新文件
  2. 在新的/config/initializers/active_storage.rb 文件中,添加以下代码:
Rails.application.config.to_prepare do
  ActiveStorage::Record.has_paper_trail
end
  1. 重启 Rails 服务器

您现在应该会看到 ActiveStorage::Record 的所有子类的版本跟踪。

【讨论】:

  • 哦,派对还在进行中,谢谢!我会试试的。
猜你喜欢
  • 2010-12-18
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
相关资源
最近更新 更多