Hi all, A bit stuck with a complex form. I''ve 2 models, events and bands. bands have many events, and events have many bands, so... they''re related with a has_and_belongs_to_many, with the appropriate joining table. In my new events form I''ve got some jquery to add new bands dynamically. in the _band form that''s generated, I have a collection_select drop down menu that has a list of all the bands //controller @bands = Band.order(''"band_name" ASC '') // form ff.collection_select :band_name, @bands, :band_name, :band_name When I select a band from the list the event saves fine, has the correct band or bands associated, but for each band it makes a new band instance as well. I want it to just associate the band with the event. currently: If I have 3 bands saved, beatles, stones and eagles I make a new event and select ''beatles'', from the drop down then save, a new event is saved, and associated with a band called beatles BUT, there are now 2 bands called beatles in the database. I want it to be associated with the original beatles I''ve tried using ff.collection_select :id, @bands, :id, :band_name passing in the id instead as indicated in the nested_attributes docs (http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html) but this returns a 404 error I''m getting this in the logs: Band Load (0.3ms) SELECT "bands".* FROM "bands" INNER JOIN "bands_events" ON "bands".id = "bands_events".band_id WHERE ("bands_events".event_id = NULL ) AND ("bands"."id" IN (1)) Completed in 63ms Rendered layouts/_header.html.haml (13.3ms) Rendered site/404.html.haml within layouts/error (169.8ms) it looks like it''s getting an id for bands, but the id for the event is NULL, any ideas how to get this going??? any help appreciated :) if you wanna see other bits of code also let me know, I didn''t want the post getting too long Mike -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mar 18, 2:20 pm, Michael Baldock <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> > currently: > If I have 3 bands saved, beatles, stones and eagles > I make a new event and select ''beatles'', from the drop down then save, > a new event is saved, and associated with a band called beatles > BUT, there are now 2 bands called beatles in the database. > I want it to be associated with the original beatles > > I''ve tried using > ff.collection_select :id, @bands, :id, :band_name > > passing in the id instead as indicated in the nested_attributes docs > (http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/Clas...) > > but this returns a 404 error > > I''m getting this in the logs: > > Band Load (0.3ms) SELECT "bands".* FROM "bands" INNER JOIN > "bands_events" ON "bands".id = "bands_events".band_id WHERE > ("bands_events".event_id = NULL ) AND ("bands"."id" IN (1)) > Completed in 63ms > Rendered layouts/_header.html.haml (13.3ms) > Rendered site/404.html.haml within layouts/error (169.8ms) > > it looks like it''s getting an id for bands, but the id for the event is > NULL, any ideas how to get this going???What are the actual parameters that are submitted ? Fred> > any help appreciated :) > > if you wanna see other bits of code also let me know, I didn''t want the > post getting too long > > Mike > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hi Fred, Thanks for helping out with this, sorry bout slow reply, I haven''t been able to get back to this, and for some reason email notifications didn''t happen, anyway... These are the paramaters when I try to submit using ff.collection_select :id, @bands, :id, :band_name Started POST "/admin/events/events/2" for 127.0.0.1 at Mon Mar 21 09:22:12 +0000 2011 Processing by Admin::Events::EventsController#update as HTML Parameters: {"commit"=>"Save this event", "authenticity_token"=>"x9LwG7hmAp4MruUJXpR3DzTxABOFEnmnEfpKYw10yDQ=", "utf8"=>"✓", "id"=>"2", "event"=>{"image_id"=>"465", "music_sample_link"=>"", "bands_attributes"=>{"0"=>{"new_band_name"=>"", "id"=>"2", "_destroy"=>"false"}}, "new_venue_name"=>"", "venue_id"=>"1", "energy_level"=>"56", "is_published"=>"0", "event_name"=>"cabaretretret", "special_offers"=>"", "genre"=>"", "is_all_event"=>"0", "is_ten_event"=>"1", "description"=>"caberet", "start_time"=>"2000-01-01 08:40", "buy_tickets_url"=>""}} If you look at the "bands_attributes" hash, "0" is used to determine which band this is, with each new band on the form this increases by 1, "new_band_name" is a virtual attribute that will be used in the future to create bands on the fly, and "id" =>"2" is the correct id I want to associate with the event. If there was a direct relationship between bands and events I think this would be simpler, but because it''s a HABTM relationship, I''m unsure what to do. Thanks for your help! Mike -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mar 21, 9:32 am, Michael Baldock <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> > If you look at the "bands_attributes" hash, "0" is used to determine > which band this is, with each new band on the form this increases by 1, > "new_band_name" is a virtual attribute that will be used in the future > to create bands on the fly, and "id" =>"2" is the correct id I want to > associate with the event. > > If there was a direct relationship between bands and events I think this > would be simpler, but because it''s a HABTM relationship, I''m unsure what > to do. >Might it be easier to use a has many through? Fred> Thanks for your help! > > Mike > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Yeah I might give that a try, thanks for the help M -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.