I have in routes.rb
map.resources :labs, :collection => { :group => :get }
which is working. But when I try to pass a parameter, e.g.
<% form_tag group_labs_path( :patient_id => @patient.id ), :method
=> :get do %>
The :patient_id isn’t getting passed to the controller:
— !map:HashWithIndifferentAccess
group: !map:HashWithIndifferentAccess
id: “5”
commit: Add Lab
action: group
controller: labs
Doing it the non-restful way works:
<% form_tag :action => :group, :patient_id => @patient.id, :method
=> :get do %>
— !map:HashWithIndifferentAccess
group: !map:HashWithIndifferentAccess
id: “6”
commit: Add Lab
method: get
authenticity_token: …
action: group
patient_id: “8”
controller: labs
Any idea how to configure the route to pass the parameter?
Many TIA,
Craig
Have you tried just making a hidden field for the patient id? Since
you’re submitting a form as a GET request, it should post all form
data in the URL.
On Mar 15, 7:59 am, daphonz [email protected] wrote:
Have you tried just making a hidden field for the patient id?
That’s an interesting design thought, which I’ll play with. But it
seems to me I should still be able to configure the route in a RESTful
way. Any idea how?
On Mar 15, 7:59 am, daphonz [email protected] wrote:
Have you tried just making a hidden field for the patient id?
BTW
<% form_tag group_labs_path, :method => :get do %>
<%= hidden_field_tag :patient_id, @patient.id %>
works perfectly of course (Thanks!)
But I still don’t understand why
<% form_tag group_labs_path( :patient_id => @patient.id ), :method
=> :get do %>
isn’t permitted syntax. Someday I’ll understand RESTful routes, but
not today