On Sat, Nov 14, 2009 at 6:37 AM, MaggotChild <hsomob1...@yahoo.com> wrote:
>
> 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?
You have to send them as an array, and assign them as an array too.

For example,
View
form.select("state_ids[]", @states)
form.select("state_ids[]", @states)

Controller
@whatever.state_ids = params[:state_ids]

You'll have to figure out the exact syntax, but that's the idea.

Hope it helps.
-- 
Leonardo Mateo.
There's no place like ~

--~--~---------~--~----~------------~-------~--~----~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to