【发布时间】:2017-07-27 14:17:21
【问题描述】:
我有一个用纸迹跟踪的模型。我需要将当前值与创建的值模型进行比较。到目前为止,我可以轻松获得当前值。如何获得原版?
获取当前值:widget.name
获取原文:widget.versions.first.???.name
我知道widget.versions.first.changeset 会返回这样的哈希:
{
name: [nil, 'original name']
}
但我不想解析出来,必须有更好的方法
【问题讨论】:
-
如果没有
reify,你就会陷入解析的困境。但是,如果您只是在寻找原始名称,则可以使用元数据在语法上完成您想要的操作,请参阅 github.com/airblade/paper_trail#4c-storing-metadata ... 本质上创建一个original_name元数据属性并在创建时存储。然后,您可以将它作为版本对象上的一流函数使用:widget.versions.first.original_name。但是,如果您不只是追求名称,我认为这将比解析更乏味。
标签: ruby-on-rails paper-trail-gem