问题标签 [paper-trail-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
493 浏览

ruby-on-rails - Rails 模型版本控制 - 一种具有独立版本化列的模型

我有一个具有 wiki 功能的多语言网站模型,其中包含我希望版本化的各种字段,但是我需要恢复对某些列而不是其他列所做的更改。

例如,我为每个模型实例存储了英文和西班牙文版本的书面指南。

想象:

  • 用户 A 编辑了西班牙语指南并添加了亵渎
  • 用户 B 稍后编辑英文指南并进行有用的更改。

通常版本控制意味着恢复用户 A 所做的更改也将恢复用户 B 以后的更改,尽管在我的情况下这是两个独立的问题。

所以我基本上需要有范围的版本历史。例如使用 papertrail:

有什么最简单的解决方案吗?我真的不想为了实现这一点而将我的指南移动到具有一对一关系的单独模型中。

0 投票
2 回答
1500 浏览

ruby-on-rails - 如何设置管理员批准模型的编辑

我需要一个普通用户可以编辑模型的系统,但在得到管理员批准之前,这些编辑实际上不会发生。我发现了一个名为paper_trail的 gem ,它确实有模型版本控制,但不具体支持我想做的事情。我想知道其他人是如何处理这个问题的。我应该补充一点,我还希望用户能够同时编辑一些关联。它们不是很复杂,例如一个是别名。

更复杂的部分可能是多个用户编辑同一个模型并尝试进行某种合并的情况。

0 投票
1 回答
307 浏览

ruby-on-rails - 在控制器/视图中实现撤消和重做

我正在使用paper_trail在我的 Rails 应用程序中实现版本控制。将后端连接到前端时,我遇到了一些麻烦。

由于我允许用户通过 AJAX 更新记录(创建新版本),因此“撤消”/“重做”功能必须与当前页面的状态(以某种方式)相关联,而不是在控制器中计算。我的一个想法是在每个 AJAX 请求中返回最新的版本号,然后用这个版本号更新我的“撤消”链接。

有没有其他人解决这个问题?最好的方法是什么?

0 投票
1 回答
108 浏览

ruby-on-rails - Ruby on Rails:更新到破坏我模型预先存在的属性的 gem,选项?

我一直在使用的 gem 为模型添加了方法。它最近更新了它的方法名称,使得其中一个方法名称现在与我的模型预先存在的数据库属性之一相同。

如果我希望与 gem 保持同步,除了重命名我的数据库中的列并更新我的所有代码之外,是否有任何解决此问题的方法?

如果有帮助,为了更具体,gem 是 PaperTrail,它为模型添加了版本跟踪。我的模型在数据库中有一个名为 version_name 的预先存在的属性,最新版本的 PaperTrail 刚刚添加为一个 class_attribute version_name,PaperTrail 使用它来定义另一个方法的名称。

0 投票
1 回答
394 浏览

ruby-on-rails - 将 paper_trail 与主键不是“id”的类一起使用

我在我的 rails 3 应用程序中为几个模型使用了 paper_trail,但是在尝试将它应用于连接模型时遇到了障碍——它的主键不是 id。

我检查了文档和源代码,但看不到任何覆盖 id 使用的选项。有什么建议么?

0 投票
1 回答
680 浏览

ruby-on-rails-3 - paper_trail 给我现有用户模型的错误

User设置要版本化的模型是否有任何冲突paper_trail?我有一个模型“用户”,如下所示:

问题是,每当我打电话时,user#versions我都会遇到异常:

versions(在Userwith上调用时抛出异常id = 6

当我尝试保存User. 我得到以下异常:

这似乎save没有填充item_idand item_type

任何帮助将非常感激。

提前致谢

0 投票
6 回答
2436 浏览

ruby-on-rails - Papertrail 和 Carrierwave

我有一个同时使用的模型:用于存储照片和PaperTrail版本控制的 Carrierwave。

我还配置了 Carrierwave 以在更新时存储不同的文件(那是因为我想对照片进行版本控制)config.remove_previously_stored_files_after_update = false

问题是PaperTrail尝试从照片(CarrierWave Uploader)存储整个 Ruby 对象,而不是简单地存储一个字符串(这将是它的 url)

(版本表、列对象)

如何解决此问题以在照片版本中存储一个简单的字符串?

0 投票
1 回答
1013 浏览

ruby-on-rails - Active Record 审计历史

我们计划在我们的 Rails3 应用程序中启用一些表审计。我们确实查看了 paper_trail ,它似乎存储了所有版本,但我不确定是否有一种机制可以发现连续版本中字段更改的区别。是否可以使用 paper_trail gem 或者我应该使用类似 vestal_versions 的东西来实现此功能?

0 投票
3 回答
2336 浏览

ruby - 如何跟踪 paper_trail 中的自定义事件?

我正在使用 paper_trail 进行审计跟踪。除了创建、更新和删除事件之外,我还想跟踪一些自定义事件,例如视图(记录)、发送(电子邮件)等。我们如何在审核模型时引入这些自定义事件?

0 投票
2 回答
1557 浏览

ruby-on-rails-3.1 - 如何纠正 has_many/belongs_to 与 paper_trail 关联的版本

我在 rails 中使用 paper_trail 来跟踪我的模型版本。但是 github repo 上的文档表明 gem 不支持has_many,belongs_to关联。

假设我有一个应用程序记录了一些公司的 CEO 姓名:

上例代表 ABC Inc. 的信息。

如何执行以下操作,以便将公司和公司的 CEO 名称重置为最新版本?