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