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.