Try something like:

  def create_visit(for_patient)
    # This populates patient_visit.patient_id w/the proper id value
    patient_visit = for_patient.visits.new 
    # Note that I've changed the action from index to new--that's
    # the convention for actions that create new objects. 
    redirect_to(:controller=>"patient_visit", :action=>"new")
  end

And then in your view, you add:

  <%= form.hidden_field(:patient_id) %>

Anyplace inside your form_for block.

That should get you a params[:patient_visit] from which you can create a visit 
for a specific patient.

HTH,

-Roy

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Lance Klusener
Sent: Wednesday, January 07, 2009 1:01 PM
To: [email protected]
Subject: [Rails] Passing data from action of cntrlr 1 to action of cntrlr 2


The question is about passing data from action of one controller to action of 
another controller.

Inside the new_patient_controller i have the following code when the button 
"next" is clicked



    def create_visit (created_patient)
redirect_to(:controller=>"patient_visit",:action=>"index",:created_patient=>created_patient)
   end

This is suppose to call the index view of the "patient_visit" controller .

Now the "patient_visit" controller has the following form




   1. <% form_for :patient_visit , :url => { :action => :save_patient_visit } 
do |form| %>
   2.
   3.     <p>
   4.       <%= label :patient_visit , :complaints , "Complaints:"  %>
   5.       <%= form.text_area :complaints , :size => 20 %>
   6.     </p>
   7.
   8.     <p>
   9.       <%= label :patient_visit , :systemic_history , "Systemic
History:"  %>
  10.       <%= form.text_field :systemic_history , :size => 40 %>
  11.     </p>
  12.
  13.     <p>
  14.       <%= label :patient_visit , :opthal_history  , "Opthal
History:"  %>
  15.       <%= form.text_field :opthal_history  , :size => 40 %>
  16.     </p>
  17.
  18.     <%= submit_tag "next" , :class => "submit"  %>
  19.
  20. <%end%>

Because of this the params which originally had the value of "created_patient" 
now gets overwritten with the new params which has the value of 
":patient_visit" .

I need the created_patient value , cause i need to attach the patient_visit 
database entry to the created_patient. ( since one patient has many visits )
--
Posted via http://www.ruby-forum.com/.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to