Скажем, у меня есть две модели в отношениях many to many
(без дополнительных атрибутов), поэтому простые отношения has_and_belongs_to_many
.
Для этого, скажем, у меня есть модель user
и модель course
. И соответствующая таблица соединений courses_users
имеет только внешние ключи user_id
и course_id
в качестве атрибутов.
Теперь я перечисляю (скажем, на странице показа user
) все course
и в соответствии с тем, зарегистрирован или нет текущий user
(т.е. если запись существует в таблице соединений) Я отображаю крестик cross или чек ✔.
Пока проблем нет.
Проблема в том, что я не могу сделать его редактируемым в форме.
Я имею в виду как я могу связать флажок формы с тем фактом, что , если он отмечен, я строю отношение, и , если не я удалить его ?
Большое спасибо.
Вот мои простые модели:
class User < ApplicationRecord
has_and_belongs_to_many :courses
end
class Course < ApplicationRecord
has_and_belongs_to_many :users
end
А вот моя попытка, но я совсем не знаю, что делать дальше.
Я думал о проверке внешнего ключа курса ..
<%= form_with model: @user do |form| %>
<%= @courses.each do |course| %>
<%= form.fields_for :courses do |ff| %>
<%= ff.check_box 'course_id', checked: (@user.courses.include? course.id) %>
<%= ff.label 'course_id' %>
<% end %>
<% end %>
<%= form.submit %>
<% end %>