Hello, I'm triying to set a form but I'm having problems.These are my
models:

class Post < ActiveRecord::Base
  has_many :taggings, :dependent => :destroy
  has_many :tags, :through => :taggings
  accepts_nested_attributes_for :taggings, :limit => 3
end

class Tag < ActiveRecord::Base
  has_many :taggings, :dependent => :destroy
  has_many :posts, :through => :taggings
end

class Tagging < ActiveRecord::Base
  belongs_to :advert
  belongs_to :tag
end

In my view posts/_form.html.erb:
<%= form_for @post do |f| %>
  <%= f.fields_for :taggings do |t| %>
    <% t.collection_select :tag_id, Tag.all, :id, :name, { :selected
=> @post.tag_ids }, { :multiple => true } %>
  <% end %>
<% end %>

The problem is that I want a MULTIPLE select control for this
application but that seems incompatible with the
accepts_nested_attributes_for is expected. This control return an
array of options selected, like this:
- One option selected ==>
"post"=>{"taggings_attributes"=>{"0"=>{"tag_id"=>["1"]}}}
- Two options selected ==>
"post"=>{"taggings_attributes"=>{"0"=>{"tag_id"=>["1","2"]}}}

Instead, the accepts_nested_attributes_for is expected something like
this:
- One option selected ==>
"post"=>{"taggings_attributes"=>{"0"=>{"tag_id"=>"1"}}}
- Two options selected ==>
"post"=>{"taggings_attributes"=>{"0"=>{"tag_id"=>"1"},"1"=>{"tag_id"=>"2"}}}

I'm already clouded with this. One solution is to use a
collection_select control without multiple but I hope may have other
better solution.

Thanks very much. Daniel.

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

Reply via email to