When modifying a model that has a has_one or has_many relationship
people usually create form that will submit the id of the selected
associated object. Rails takes this into consideration with
validations: validate_presence_of :country will validate if country
or country_id has been set.
In Rails, providing the associated ID works fine with has_one but if
you try to do this with a has_many:
form_for(@country) do |form|
form.select :state_ids, @states
form.select :state_ids, @states
#etc...
The selected state_ids are written to the DB as soon as they're
assigned. What's the reasoning behind this?
How is one supposed to assign multiple collection ids via a form?
accepts_nested_attributes_for doesn't work out too well either because
you're just setting IDs -a field that is explicitly ignored by
accepts_nested except when testing whether or not the given params are
new.