Paper_Trail显示两个版本之间的差异

时间:2015-05-28 05:16:35

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

我是Rails的新手,但取得了进步。我正在为这个项目使用RubyMine。

我有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 %>

不确定如何显示两者之间的差异。我知道答案在“差异版本”部分here中,但我无法弄清楚如何将其应用到我的问题中。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

试试这个

<th>Difference</th>
  <table>
    <% number_of_versions = @quarterback.versions.drop(1).count%>
    <% number_of_versions.times do | index | %>
        <tr>
          <td>
            <%= versions[index].reify.try(:xoi_qb).to_i - versions[index + 1].reify.try(:xoi_qb).to_i  %>
          </td>
        </tr>
    <% end %>