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: