This gets even stranger.
The problem is that the parameter from the mulitline collection_select
is an array with ONE element! The element is a string "3,5,4,1". To
update the habtm I need an array of four integer elements [3,5,4,1]
How can this happen???
:-( jeb
On 30 mar, 15:38, jeb <jo...-sgoA4MbTzF0@public.gmane.org>
wrote:> I use habtm and a mulitline select to select which publications a
> journalist works on.
>
> class Journalist < ActiveRecord::Base
> has_and_belongs_to_many :publications
> end
>
> AND
>
> class Publication < ActiveRecord::Base
> has_and_belongs_to_many :journalists
> end
>
> When I make changes in the select, only the first selected item gets a
> record in the habtm table:
>
> From the log:
> Parameters: {"commit"=>"Update Journalist",
>
"journalist"=>{"publication_ids"=>["3,5,4,1"],
},
>
"authenticity_token"=>"a7Lws3tWNS+FczclJEYuu4EusVINUsuy6rwLVagMdLk=",
> "utf8"=>"✓", "id"=>"7"}
>
> Then some rows down(!?):
> INSERT INTO "journalists_publications"
("publication_id",
> "journalist_id") VALUES (3, 7)
>
> So, what happened to (5,7), (4,7) and (1,7)????
>
> Migration:
> def self.up
> create_table :journalists_publications, :id => false do |t|
> t.references :journalist, :publication
> end
> add_index :journalists_publications, :journalist_id
> add_index :journalists_publications, :publication_id
> end
>
> Form:
> <%= form_for(@publication, :remote => true) do |f| %>
> <%= f.collection_select(:journalist_ids,
> Journalist.limit(20).order(''id''), :id, :name, {},
{:multiple => true})
> %>
> <% end %>
>
> Controller:
> @journalist = Journalist.find(params[:id])
> if @journalist.update_attributes(params[:journalist])
> ...
>
> Does anyone have a clue?
> Rails 3.0.5
--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.