RESTful route question

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.

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?

BTW

<% form_tag group_labs_path, :method => :get do %>   <%= hidden_field_tag :patient_id, @patient.id %>

works perfectly of course :slight_smile: (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 :slight_smile: