I need the route /events/:event_id/races/edit, so: map.resources :events do |event| event.resources :races, :collection => {:edit => :get} end Which produces this: edit_event_races GET /events/:event_id/races/edit(.:format) {:action=>"edit", :id=>/[^\/.?]+/, :controller=>"races"} This is exactly what I expected except for the weirdness over at :id As a result, edit_event_races_path(@event) or edit_event_races_path (@event.id) is blowing up in my face: edit_event_races_url failed to generate from {:controller=>"races", :action=>"edit", :event_id=>#<Event id: 1, name: "Ride Sally Ride">, :id=>/[^\/.?]+/} Am I doing something wrong here?
I''m aware that the route /events/:event_id/races/:race_id/edit exists but that is not what I want. My goal is to edit all the races collectively, not individually, so I need the route mentioned above. On May 22, 9:18 am, Josh <josh.m.sha...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I need the route /events/:event_id/races/edit, so: > > map.resources :events do |event| > event.resources :races, :collection => {:edit => :get} > end > > Which produces this: > > edit_event_races GET /events/:event_id/races/edit(.:format) > {:action=>"edit", :id=>/[^\/.?]+/, :controller=>"races"} > > This is exactly what I expected except for the weirdness over at :id > > As a result, edit_event_races_path(@event) or edit_event_races_path > (@event.id) is blowing up in my face: > > edit_event_races_url failed to generate from > {:controller=>"races", :action=>"edit", :event_id=>#<Event id: 1, > name: "Ride Sally Ride">, :id=>/[^\/.?]+/} > > Am I doing something wrong here?
Josh Sharpe wrote: [...]> As a result, edit_event_races_path(@event) or edit_event_races_path > (@event.id) is blowing up in my face: > > edit_event_races_url failed to generate from > {:controller=>"races", :action=>"edit", :event_id=>#<Event id: 1, > name: "Ride Sally Ride">, :id=>/[^\/.?]+/} > > Am I doing something wrong here?So it would seem. You''re passing an Event object where Rails is apparently expecting an ID. Note what :event_id holds. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
Sounds like what you''re after is an "event/#/index" that: 1) paginates the associated "races" into a 2) table that can be editted by 2a) individual field 2b) selected groups of fields 3) with a save that only saves modified "race" records I may be wrong but that doesn''t sound like a restful route to me. On May 22, 3:24 am, Josh <josh.m.sha...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I''m aware that the route /events/:event_id/races/:race_id/edit exists > but that is not what I want. My goal is to edit all the races > collectively, not individually, so I need the route mentioned above. > > On May 22, 9:18 am, Josh <josh.m.sha...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > I need the route /events/:event_id/races/edit, so: > > > map.resources :events do |event| > > event.resources :races, :collection => {:edit => :get} > > end > > > Which produces this: > > > edit_event_races GET /events/:event_id/races/edit(.:format) > > {:action=>"edit", :id=>/[^\/.?]+/, :controller=>"races"} > > > This is exactly what I expected except for the weirdness over at :id > > > As a result, edit_event_races_path(@event) or edit_event_races_path > > (@event.id) is blowing up in my face: > > > edit_event_races_url failed to generate from > > {:controller=>"races", :action=>"edit", :event_id=>#<Event id: 1, > > name: "Ride Sally Ride">, :id=>/[^\/.?]+/} > > > Am I doing something wrong here?