我是 Rails 新手...使用 RubyMine 作为 IDE。
我有 Paper_Trail 保存数据“xoi_qb”的早期版本。我的视图当前显示了我想要的当前和以前的数据,但我想显示当前版本“xoi_qb”和以前版本“xoi_qb”之间的差异。例如,当前版本可能是“97”,以前的版本可能是“94”,我想显示“XOI +/-:+3”。我想显示这种差异,并根据正或负的变化添加“+”或“-”。
在我的模型中,Paper Trail 设置为创建如下版本:
def get_xoi_qb
xoi_qb = []
self.versions.each do |version|
unless version.reify.nil?
xoi_qb << version.reify.xoi_qb
end
end
return xoi_qb
end
在我的 HTML 设置中显示这样的版本:
<th>Previous XOI</th>
<table>
<% @quarterback.versions.each do |version| %>
<tr>
<td><%= version.reify.xoi_qb %> dated <%= version.created_at %></td>
</tr>
<% end %>
不知道如何显示两者之间的差异。
非常感谢您的帮助。
看一眼有关使用 PaperTrail 区分版本的文档 https://github.com/airblade/paper_trail#3c-diffing-versions。特别是,您需要注意以下事项:
如果您添加一个对象更改文本栏到您的versions表,或者在安装时使用Rails 生成 paper_trail:install --with-changes选项或手动,PaperTrail 将在每个更新版本中存储更改差异(不包括 PaperTrail 忽略的任何属性)。
启用此行为后,可以相当简单地获得object.versions.map{|v| [v.created_at,v.changeset]}然后迭代该结构以呈现更改日志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)