How does one use a <select> for a habtm field? I'm having trouble getting it to work.
Here's my html:
<div> <p><label for="projects">Project</label><br/> <select id="schedule_projects" name="schedule[project_ids]" multiple="multiple" size="10"> <%= options_from_collection_for_select(@all_projects, :id, :name, @selected_projects) %> </select> </p> </div>
And my controller:
def edit @schedule = Schedule.find(params[:id]) @all_projects = Project.find(:all, :order=>"name") @selected_projects = @schedule.projects.collect{|prj| prj.project_id.to_i} end
def update @schedule = Schedule.find(params[:id]) if @schedule.update_attributes(params[:schedule]) flash[:notice] = 'Schedule was successfully updated.' redirect_to :action => 'show', :id => @schedule else render :action => 'edit' end end
I keep getting an error:
ActiveRecord::StatementInvalid in ScheduleController#update
Mysql::Error: Duplicate entry '3' for key 1: INSERT INTO projects_schedules (`project_id`, `id`, `schedule_id`) VALUES (3, 3, 1)
It's because the id 3 is already used in the projects_schedules table. Why is it choosing a duplicate key?
T.