I have multiple Lessons and most of them have some prerequisites which are themselves other lessons. The Prerequisite model represents the relationship and each has a lesson_id and prerequisite_lesson_id.
class Lesson < ApplicationRecord
  has_many :prerequisites
  has_many :prerequisite_lessons, :through => :prerequisites
end
class Prerequisite < ApplicationRecord
  belongs_to :lesson
  belongs_to :prerequisite_lesson, :class_name => "Lesson"
end
I'm trying to figure out a way so that:
- When I create a new 
Lessonand select one or more prerequisites from acollection_select - multiple 
Prerequisiteobjects are created based on what was selected, with thelesson_idbeing the createdLessonid. 
Here is part of my Lesson controller:
def create
  @lesson = Lesson.new(lesson_params)
  if @lesson.save
    if @lesson.prerequisite_ids.length > 0
      @lesson.prerequisite_ids.each do |p|
        Prerequisite.new(lesson_id: @lesson.id, prerequisite_lesson_id: p)
      end
    end
    flash[:notice] = "Lesson created..."
    redirect_to root_url
  else
    render :new
  end
end
...
def lesson_params
  params.require(:lesson).permit(
    :name,
    :high_tempo,
    :low_tempo,
    :interval,
    :advance_tempo,
    prerequisites_attributes: [
      :lesson_id,
      :prerequisite_lesson_id
    ]
  )
end
and my form:
<%= f.collection_select(:prerequisite_ids, Lesson.all, :id, :name, {}, {:multiple => true}) %>
UPDATE:
In the logs, I see:
"lesson"=>{"name"=>"Lesson 6", "high_tempo"=>"200", "low_tempo"=>"100", "interval"=>"10", "advance_tempo"=>"140", "prerequisite_ids"=>["", "3", "4"]}, "commit"=>"Save"} Unpermitted parameter: prerequisite_ids'`