Ruby on rails 纸迹检索对象

Ruby on rails 纸迹检索对象,ruby-on-rails,paper-trail-gem,Ruby On Rails,Paper Trail Gem,我正在尝试检索paper trail已版本化的对象。但是,当我使用.reify时,它会检索以前的版本。不是最近的 比如说 控制器 @line_item_versions = PaperTrail::Version.where(item_type: 'LineItem', secondary_id: params[:id]).order('created_at ASC') 看法 : object=line\u item.last.reify(options={})或object=line\

我正在尝试检索paper trail已版本化的对象。但是,当我使用.reify时,它会检索以前的版本。不是最近的

比如说

控制器

@line_item_versions = PaperTrail::Version.where(item_type: 'LineItem', secondary_id: params[:id]).order('created_at ASC')
看法


: 
object=line\u item.last.reify(options={})
object=line\u item.next\u version.reify(options={})
都返回未定义的方法错误


如何检索适当的对象,以便能够交互和显示特定信息?

这是因为PaperTrail将对象存储为更改前的状态,因此,当您具体化它时,如果您希望获得更改后的名称,它将显示其以前的状态,您可以将object_change列添加到versions表中,然后调用变更集(如果所需对象已更改),如果已更改,则打印更新的字段,如果未更改,则打印具体化的对象字段,如下所示:

<%= line_item.changeset[:name].nil? object.name : line_item.changeset[:name][1] %></b> : <%= line_item.changeset[:quantity].nil? object.quantity : line_item.changeset[:quantity][1] %>
<%= line_item.changeset[:name].nil? object.name : line_item.changeset[:name][1] %></b> : <%= line_item.changeset[:quantity].nil? object.quantity : line_item.changeset[:quantity][1] %>