How does one use a for a habtm field? I’m having trouble
getting it to work.
Here’s my html:
Project
<%=
options_from_collection_for_select(@all_projects, :id, :name,
@selected_projects) %>
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.