On April 5, 2011 07:18:49 am DJ wrote:
> Having not got a reply to this, perhaps I should add something about
> what I already tried ... ?
> 
> My sense from the Hobo documentation is that the important thing is to
> keep model-related stuff in the model, so I assume that the changing
> the value of a field during a transition involves an assignment within
> a method in the model.rb file.
> 
> So ... I did an assignment to what I thought would be the instance
> variable of the current patient as so ...
> 
>     transition  :disharge_patient, { :admitted => :discharged },
> 
>                 :available_to => :all do
> 
>          @patient.location_id = nil
>     end
> 

Two things:
The "do" blocks works on the current object (a patient in this case) so you 
can call its methods directly, namely: "location_id = nil" (or "location = 
nil").
The assignment works on on the object in memory:  you have to save the object 
after making the assignment (i.e. "save")
Regards,
Henry



> but that doesn't work since it thinks location_id is a method ... and
> the console tells me @patient is not defined.
> 
> I've tried a few other things within the Lifecycle statement - but
> most of them crash, indicating that I'm a Ruby-Noobie.
> 
> Any help on this gratefully received. I'm a bit stuck on this.
> 
> Thanks
> 
> DJ
> 
> On Apr 4, 12:46 am, DJ <[email protected]> wrote:
> > Apologies if this is ridiculously straightforward - my learning-curve
> > is near vertical and I've got a bit lost on the Hobo/Rails cliff-face
> > (but enjoying it). Thanks in advance to any suggestions.
> > 
> > I have a very simple patient database with a lifecycle which holds
> > whether the patient is admitted or discharged -  this is working
> > wonderfully using TablePlus and <transition-buttons/>.
> > 
> > However, I want to  'blank-out' (set to nil probably) the location
> > when a patient is discharged.
> > 
> > My question is how best to do this.
> > 
> > Any help gratefully received. Many thanks
> > 
> > DJ
> > 
> > __________________________
> > 
> > Relevant code in patient.rb is as follows:
> > 
> > class Patient < ActiveRecord::Base
> > 
> >   hobo_model # Don't put anything above this
> > 
> >   fields do
> >     first_name                     :string
> >     last_name                      :string
> >    # etc - field-list cut for clarity ...
> >     timestamps
> >   end
> > 
> >   belongs_to :location
> >  # etc - other relationships cut for clarity
> > 
> >   lifecycle :state_field => :admission_status do
> > 
> >     state  :admitted
> >     state  :discharged ,  :default => true
> > 
> >     transition  :admit_patient, { :discharged => :admitted } , :params
> > => [ :location ] ,
> >                 :available_to => :all do
> > 
> >     end
> > 
> >     transition  :disharge_patient, { :admitted => :discharged },
> >                 :available_to => :all do
> > 
> >     end
> > 
> >   end

-- 
Henry Baragar
Instantiated Software

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to