Rails 4 : Exception Site(#70058148983820) expected, got String(#8388700)


#1

I have a form with a selectbox which allow to select differents values. When I want to save the form I have an exception :

ActiveRecord::AssociationTypeMismatch at xxxxxxxxxxxxxxxxxxxxx
Site(#70058148983820) expected, got String(#8388700)

Here is the form which generate the select box

col-md-9
 .input-group.btn-group
    %span.input-group-addon
    =t('activerecord.attributes.user.volunteer_wishes_sites')
    = f.collection_select :wishes_sites, @sites, :id, :name, {:selected => @user.wishes_sites.map(&:id)}, {:multiple => true, :class=>"sites_multiselect"}

In my controller I have

def user_params
  params.require(:user).permit(
    :wishes_sites =>[],
  )
end

The model

class User < ActiveRecord::Base
  ....
  has_and_belongs_to_many :wishes_sites, :class_name => "Site", :join_table => :wishes_sites
end

here is the line which produces the bug

if @user.update_attributes(user_params)

Here are the migration

create_table :sites, force: true do |t|
  t.string   "name"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.text     "address"
  t.text     "description"
end

create_table :wishes_sites, id: false, force: true do |t|
  t.integer "user_id"
  t.integer "site_id"
end

Thanx for your help