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
(ActiveRecord::NestedAttributes::ClassMethods)
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