У меня есть две модели Учитель и Ученик, и я установил отношения HABTM между двумя из них.У меня есть форма для каждого из них, чтобы создать новую запись в базе данных.Например, в форме создания учителя пользователь может ввести имя учителя в качестве входных данных и установить флажки, содержащие имена разных учащихся.Если пользователь помечает флажок, ввод не будет сохранен, но если флажок оставлен пустым, а пользователь просто вводит имя, новая запись сохраняется.Как ни странно, если пользователь обновляет учителя, это только время, когда он может выбрать учеников для включения в учительскую запись.
Вот как выглядят некоторые методы в TeacherController
:
def new
@teacher = current_user.teachers.build
end
def create
@teacher = current_user.teachers.build(teacher_params)
if @teacher.save
redirect_to root_path
else
render 'new'
end
end
def edit
end
def update
if @teacher.update(teacher_params)
redirect_to teacher_path(@teacher)
else
render 'edit'
end
end
private
def teacher_params
params.require(:teacher).permit(:name, :student_ids => [])
end
def search_teacher
@teacher = Teacher.find(params[:id])
end
Ниже приведена форма, которую я использую для создания нового учителя и обновления существующего учителя:
<%= simple_form_for @teacher do |f| %>
<%= f.input :name, label: "Teacher's Name" %>
<label>Students</label>
<br>
<%= f.collection_check_boxes :student_ids, Student.all, :id, :name %>
<br>
<%= f.button :submit %>
<% end %>
Может также помочь отметить, что я столкнулся с этой проблемой только после введения аутентификации пользователя с devise
вмое заявление.