Tracking model status attributes

Hi,

I have a number of models that have various states specific to the
domain. I was wondering how people go about modelling and persisting
this state and optionally track its progress.

I notice in DHH’s resources on rails speech he included the following
code snippet,

class Kase < ActiveRecord::Base
has_one :progress
end

class Progress < ActiveRecord::Base
belongs_to :kase
belongs_to :initiator, :class_name => “Person”
end

class Opened < Progress
end

class Reviewed < Progress
belongs_to :verifier, :class_name => “Person”
end

class Closed < Progress
end

As someone still learning Ruby, what would be the best way to
interrogate a Kase object progress? Is it down to testing for the
kaseobject.progress type?

I had also considered you would have a Kase model with separate
attributes for opened, reviewed, and closed. Each Progress object
containing the time and preserving stage information between progress
states.

Such as myKase.reviewed? => nil or Reviewed object

Do they above couple of points sound reasonable or have I
misinterpreted what is suggested.

Thanks, Andrew