Как построить запись отношения many_to_many с формой? - PullRequest
0 голосов
/ 13 ноября 2018

Скажем, у меня есть две модели в отношениях 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 %>
...