问题标签 [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 投票
2 回答
4053 浏览

ruby-on-rails - 在 Papertrail 中显示单个记录的所有版本

我正在建立一个联赛系统,目前它根据结果存储和更新玩家的“elo score”。现在,我正在尝试添加“HighCharts”,以用漂亮的折线图显示本赛季球员的 elo 得分。有人建议我使用 Papertrail 来存储更新,我已经安装好了。

现在我的问题来了,我似乎无法弄清楚如何在一个易于“HighCharts”使用的数组中吐出用户 elo_score 版本。我可以获得 elo_score 的最新更新:

但我似乎找不到为“elo_score”吐出所有“版本”的语法。类似于“1000、1020、1043、1020”。

我也试过:

但这给了我“nil:NilClass 的未定义方法 `elo_score'”。虽然只是 <%= @player.versions.map { |version| version.reify %> 吐出记录中的所有信息,显然不仅仅是 elo_score。

任何人都可以帮忙吗?抱歉,如果我没有说清楚,我对 Rails 绝对是全新的,这只是我业余时间的一个有趣的项目,但我玩得很开心!

非常感谢!

0 投票
2 回答
145 浏览

ruby - 无法理解以下代码的作用

有人可以向我解释下面的代码在做什么。 before并且after是哈希。

它是从纸迹不同的宝石。

0 投票
1 回答
1474 浏览

ruby-on-rails - 使用多个“用户”模型获取 Paper_trail + Rails_admin + 设计

我正在 Rails 3 中开发一个应用程序,目前我使用 Devise 作为登录名,Rails_admin 作为管理面板,Paper_trail 跟踪“用户”模型所做的所有更改......问题是我有两个用户模型,用户和管理员。所以在 rails_admin.rb (initiliazer) 中有一行代码来设置 Paper_trail 来跟踪历史:

有什么方法可以让用户和管理员都进行 paper_trail 监控更改,还是只能遵循一种模型?我注意到,即使它是这样设置的,并且我以管理员身份在 Rails_admin 中进行了更改,但更改表明它是由与进行更改的管理员具有相同 ID 的用户进行的。

0 投票
1 回答
2756 浏览

ruby-on-rails-3 - 将 user_id 存储在 paper_trail 版本表中

我正在使用纸质追踪来审核对数据的更改,并且除了纸质追踪默认存储的“whodunnit”列之外,还希望存储当前用户的 user_id。

我可以轻松修改版本迁移以添加 user_id 列。但是我还没有找到一种简单的方法来从我的应用程序中的各种模型中设置该列。

看起来这应该有效:

而且,我认为如果我可以访问模型中的 current_user,它可能会起作用。但我没有。在研究了如何在我的模型中访问 c​​urrent_user 之后,我发现这里有一场哲学辩论。不过,这不是我的问题。

所以我正在考虑使用像 sentient_user 或 sentient_model 这样的 gem 来让我访问我的模型中的 current_user,这样我就可以用上面的代码来设置它。

但是,对于我在这里尝试做的小事来说,添加这些宝石似乎很复杂。我想知道是否有更简单的方法。

将采取行动的人的 user_id 添加到版本表中的最简单方法是什么?

0 投票
2 回答
1330 浏览

ruby - 纸迹插件和 rspec

我有一个模型,Car

Car当我通过应用程序中的表单更新一个实例时,将调用PaperTrail 插件并创建一个新版本。

但是如果我使用 rspec 测试这个模型,PaperTrail 插件永远不会被调用。为什么不?

0 投票
1 回答
1110 浏览

ruby-on-rails - 创建子记录时跳过 paper_trail 的版本创建

我有一个带有创建关联记录的 after_create 过滤器的简单模型。

然而,创建Subject例如将创建两个主题的 now 会导致同一主题的两个版本,即主题更改create之前和之后的版本。update

关于如何解决这个问题的任何想法?

更新
主题模型不是主题的子类,而是属于它。它们也有一个 paper_trail 并且应该从创建过程的开始到主题进行版本控制。

0 投票
0 回答
881 浏览

ruby-on-rails-3 - Rails 3 paper_trail 跟踪多个关联模型以进行撤消

最近几天我一直在尝试使用 paper_trail 作为撤消系统,可以一次回滚多个对象;我从Railscast开始,并一直在尽我最大的努力让某些东西发挥作用。我觉得我很接近,但也觉得我的实施可能会更好,或者可能有一种我不知道或超出我技能的不同方式。

到目前为止,我已经尝试过:
在版本中添加了 parent_id 列。这包含另一个版本 ID。
创建了一个设置此 ID 的方法,在进行保存、更新或删除后,我将父模型和子模型传入,然后使用父最新版本 ID 更新该子模型的最新版本的 parent_id。它看起来像这样:

然后,当我进行的更新影响的不仅仅是父模型时,我称之为它,它也会更新刚刚制作的子模型版本。

然后在我的 revert 方法中,我通过 params[:id] 找到版本,通过 parent_id params[:id] 找到所有子版本,并将它们全部具体化。这在一定程度上运作良好。

问题在于回调 - 我在模型上有一个回调,before_destroy,它修改了另一个模型。但是,在这种情况下,我不知道是用户发起了这个销毁还是其他模型,所以我无法获得 parent_id。也就是说,Employee有很多item,employee销毁item,items修改employee before_destroy。before_destroy 不知道它为什么被摧毁或是谁干的。

我知道 papertrail gem 已经说过它不能很好地与关联一起工作,但我觉得这一定是可能的 - 以某种方式查看回调可能吗?我可能对此过于深入,但是对于撤消起作用的操作,它非常好,我不想放弃它。

任何想法表示赞赏。谢谢!

0 投票
1 回答
383 浏览

ruby-on-rails-3 - 通过创建符合 Hodel 3000 的日志在 Heroku 上使用 oink

我有内存泄漏并试图追踪它,因此我试图在 Heroku 服务器上使用 oink。由于 Heroku 不提供日志存档,我通过 Papertrail 插件将它们导出到 Amazon S3。

我已经能够成功地做到这一点,但是,为了使用 oink,我的日志文件必须采用一种称为“Hodel 3000 兼容记录器”的特殊格式。我已经设法在开发中这样做了,但是我不知道如何在生产中创建这样的日志文件(*heroku)。任何帮助,将不胜感激。

提前致谢,

胡安·拉格朗日

0 投票
2 回答
217 浏览

activerecord - 属于特定版本

我需要将模型的特定版本与订单一起存储。我打算使用像paper_trailvestal_versions这样的版本控制 gem 。我想要订单自动加载的正确版本。

理想情况下,我只是简单地存储对象,order.update_attributes(:stuff => bought_stuff)订单会记住东西的版本,以便后续加载order.reload.stuff仍然是保存订单时的对象。

有没有可以提供这种功能的宝石?我找不到一个。

否则,如何使用 ActiveRecord 和版本控制 gem 来实现?

0 投票
1 回答
581 浏览

ruby-on-rails - Papertrail 版本控制和存储当前版本?

在创建了大约 1000 条记录后,我已将 Papertrail gem 添加到我的应用程序中。

有谁知道如何用我的数据的当前版本填充版本表?

如果不这样做,似乎只有每个的第二个更改才能让我正确地进行比较/标记通过差异等更改的内容。

非常感谢!