ruby-on-rails - 如何获得带有纸迹的模型的原始属性

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

我有一个可以通过纸迹跟踪的模型。我需要将当前值与创建的值模型进行比较。到目前为止,我可以轻松获得当前值。我如何获得原件?

要获取当前值:widget.name

获得原件:widget.versions.first.???.name

我知道widget.versions.first.changeset将返回这样的哈希:

{
  name: [nil, 'original name']
}


但我不想解析它,必须有更好的方法

最佳答案

我不想这样做:

original = widget.versions.where(event: 'create')[0].changeset['name'][1]

丑陋但效果很好。猴子可以将其修补到paper_trail中进行清理

关于ruby-on-rails - 如何获得带有纸迹的模型的原始属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353464/

相关文章:

ruby-on-rails - Recaptcha::RecaptchaError in Articles#show 未指定站点 key

ruby-on-rails - 创建新用户时如何为 paper_trail 设置 whodunnit?

paper-trail-gem - 是否可以将 PaperTrail gem 配置为全局忽略属性?

mysql - 在 Rails 应用程序中向 mysql 表添加一列?

ruby-on-rails - Ruby:创建日期范围

ruby-on-rails - 有一条相对的shebang线

ruby-on-rails - 无法完成 "bundle install"- 无法安装 linecache19 -v '0.5.12'

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

ruby-on-rails - 在 Rails 中使用 PaperTrail 批准/拒绝编辑

ruby-on-rails - 如何在 ActiveRecord 回调中跳过 PaperTrail 版本