Как узнать, что не было выбрано из collection_select? - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть форма, которая передает набор идентификаторов флажков в контроллер через collection_check_boxes. Каждый раз, когда некоторые из этих флажков могут быть отмечены или сняты. У непроверенных записей удаляются их записи, и любой обратный вызов before_destroy, который я установил, игнорируется. Нашел эту запись API, которая объясняет это поведение:

collection = objects Заменяет содержимое коллекций, удаляя и добавляя объекты соответствующим образом. Если параметр: through имеет значение true, обратные вызовы в моделях объединения запускаются, кроме как уничтожить обратные вызовы, поскольку удаление является прямым.

Имея это в виду, как я могу узнать, какие идентификаторы не проверяются? По крайней мере, я хотел бы сообщить пользователю, какие записи были уничтожены.

View

<%= f.collection_check_boxes(:condition_ids, target_participant.encounter.ruleset.conditions, :id, :name) do |b| 
 <li>
   <%= b.check_box + " " + b.label(class: "p3 damage-model-checkbox-label") do %>
     <%= b.text %>
   <% end %>
 </li>
<% end %>

Контроллер

def update
  @target_participant.update(participant_params)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...