Link To New Association

24 views
Skip to first unread message

Diego Dillenburg Bueno

unread,
Jan 13, 2015, 7:50:32 AM1/13/15
to rubyonra...@googlegroups.com
Hey there,

I have a patients model which has many hospitalizations, from the patients#show I want to generate a link to hospitalizations#new creating a new association to this very same patient, any ideas on how to do that? I want it to when I get to the hospitalizations#ne I be able to manipulate the output the patient data in the generated view and submit a Patient.hospitalizations.create, how would be the best approach for that?

Thanks in advance,

Diego Dillenburg Bueno
Graduando em Ciências da Computação
UNESP - Rio Claro
(12) 98116-7741

Diego Dillenburg Bueno

unread,
Jan 13, 2015, 11:22:14 AM1/13/15
to rubyonra...@googlegroups.com
Further updates on my question above:

what if I have a helper method to store the "current_patient", having always the last patient from my search query and on my hospitalizations_controller I build the Create method something like this: @hospitalization = current_patient.hospitalizations.new(hospitalization_params) ? Would this be the best way to work around this?



Diego Dillenburg Bueno
Graduando em Ciências da Computação
UNESP - Rio Claro
(12) 98116-7741


Matt Jones

unread,
Jan 14, 2015, 11:17:40 PM1/14/15
to rubyonra...@googlegroups.com


On Tuesday, 13 January 2015 11:22:14 UTC-5, Diego Dillenburg Bueno wrote:
Further updates on my question above:

what if I have a helper method to store the "current_patient", having always the last patient from my search query and on my hospitalizations_controller I build the Create method something like this: @hospitalization = current_patient.hospitalizations.new(hospitalization_params) ? Would this be the best way to work around this?


This is a great use case for nested resource routing - you aren't just trying to make *a* hospitalization, you're trying to make one for a particular patient. So instead of a route like:

/hospitalizations/new

you'd want to use:

/patients/:patient_id/hospitalizations/new

One way to read this is "make a new hospitalization for the patient :patient_id".

To do this in the routes file, you'd have something like:

resources :patients do
  resources :hospitalizations
end

You can make a link to the new page with something like (in an ERB template):

link_to "New Hospitalization", new_patient_hospitalization_path(@patient)

assuming you've got the desired patient record in @patient.

--Matt Jones

Diego Dillenburg Bueno

unread,
Jan 15, 2015, 1:04:17 PM1/15/15
to rubyonra...@googlegroups.com
Thanks for the reply. That would mean building a namespace like Patients > Hospitalization? Nesting Hospitalization inside Patients, right? Will try this. For now I had solved this issue storing the patient_id in the session, any information on this solution? If it's ok or not to use it like that?



Diego Dillenburg Bueno
Graduando em Ciências da Computação
UNESP - Rio Claro
(12) 98116-7741


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/3b5be9c1-6efc-4920-85d6-9a89c52a008f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Robby O'Connor

unread,
Jan 15, 2015, 1:11:25 PM1/15/15
to rubyonra...@googlegroups.com

Also checkout accepted_nested_resource I think it is? I'm on my phone currently...this would be placed in your model

--Rob
Sent from my cell, please excuse any typos.

Scott Ribe

unread,
Jan 15, 2015, 1:15:46 PM1/15/15
to rubyonra...@googlegroups.com, Diego Dillenburg Bueno
On Jan 15, 2015, at 11:03 AM, Diego Dillenburg Bueno <diegodi...@gmail.com> wrote:
>
> For now I had solved this issue storing the patient_id in the session, any information on this solution?

That sounds like a bad idea. What if the user has more than one window open, or manages to use the back button to get to a hospitalization for a different patient?

I'd think that patient_id for a new hospitalization ought to go into a hidden field in the form.

--
Scott Ribe
scott...@elevated-dev.com
http://www.elevated-dev.com/
(303) 722-0567 voice




Robby O'Connor

unread,
Jan 15, 2015, 1:22:11 PM1/15/15
to rubyonra...@googlegroups.com, Diego Dillenburg Bueno

Nested resource is the way to go.

--Rob
Sent from my cell, please excuse any typos.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.

Robby O'Connor

unread,
Jan 15, 2015, 2:06:58 PM1/15/15
to rubyonra...@googlegroups.com, Diego Dillenburg Bueno
Some resources:
I was wrong. It's accepts_nested_attributes_for. Sorry, case of not having Google available to me.

http://asciicasts.com/episodes/196-nested-model-form-part-1

http://asciicasts.com/episodes/197-nested-model-form-part-2

http://robots.thoughtbot.com/accepts-nested-attributes-for-with-has-many-through

http://railscasts.com/episodes/196-nested-model-form-part-1

This should help you with your problem. You need to do nested resources...it's the right thing to do. PS railscasts is a handy resource to have at hand. Ryan Bates needs to start doing them again!

--rob




On 01/15/2015 01:21 PM, Robby O'Connor wrote:

Nested resource is the way to go.

--Rob
Sent from my cell, please excuse any typos.

On Jan 15, 2015 1:15 PM, "Scott Ribe" <scott...@elevated-dev.com> wrote:
On Jan 15, 2015, at 11:03 AM, Diego Dillenburg Bueno <diegodi...@gmail.com> wrote:
>
> For now I had solved this issue storing the patient_id in the session, any information on this solution?

That sounds like a bad idea. What if the user has more than one window open, or manages to use the back button to get to a hospitalization for a different patient?

I'd think that patient_id for a new hospitalization ought to go into a hidden field in the form.

--
Scott Ribe
scott...@elevated-dev.com
http://www.elevated-dev.com/
Reply all
Reply to author
Forward
0 new messages