Topic: acts_as_versioned and activerecord-diff problem

Hi,

I'm trying to use acts_as_versioned together with activerecord-diff plugin. I have a Testcase model which is versioned.

class Testcase < ActiveRecord::Base
  
  acts_as_versioned
  
  include ActiveRecord::Diff
  diff :exclude => [:updated_at, :version, :id]
  ...
end

In my view, I'd like to show a summary of changes.

So I tried following code in the show.html.erb:

<%
  last_version = nil
  @testcase.versions.each do |version|
%>
  <li>
    <%=version.created_at.to_s(:short)%>: <%
      if last_version.nil?%>
         Initially Created
    <% else %>
    <%
      changes = []
      differences = version.diff(last_version)
      differences.each do |field, d|
        new_value, old_value = *d
        changes << "#{field.to_s.humanize} changed " <<
                   "from '#{old_value}' to '#{new_value}'"
        end%>
        <%=h changes.to_sentence%><%
      end
      last_version = version%>
  </li>
<%end%>

But when I try to enter the page, I got following error:

NoMethodError in Testcases#show

Showing /home/lukas/Aptana Studio 3 Workspace/testup/app/views/testcases/show.html.erb where line #13 raised:

undefined method `diff' for #<Testcase::Version:0x7f49b65c5c90>
Extracted source (around line #13):

10:   <%   else %>
11:     <%
12:     changes = []
13:       differences = version.diff(last_version)
14:       differences.each do |field, d|
15:         #next if ignored_fields.include?(field)
16:         new_value, old_value = *d

Seems that the activerecord-diff is not allowed for the versions of Testcase, only for testcase itself. But since the versions are managed automatically by acts_as_versioned, I do not know how to tell activerecord-diff to work with it.

Can you help me?

(The only solution I found so far is to manually create temporal Testcase from version object and use diff on that one, but there must be a better way)

Thanks in advance

Lukas