Я создаю приложение для работы с рельсами.При создании новой компании пользователь имеет возможность выбирать привилегии, связанные с компанией, на «странице новой компании» с помощью флажков.Это работает хорошо, пока пользователь не попытается обновить / отредактировать привилегии, связанные с компанией.
Когда пользователь пытается редактировать льготы, метод редактирования полностью удаляет существующие значения, даже если пользователь не снял флажок на странице редактирования.Так, например, у компании есть льготы, такие как пенсия и бесплатный обед.Пользователь решает отредактировать это и добавить медицинскую страховку к уже существующим льготам.Метод редактирования в этом случае удаляет пенсию и бесплатный обед и сохраняет только медицинскую страховку, несмотря на то, что пользователь не снимает отметку с пенсии и бесплатного обеда.Я хочу, чтобы он редактировал / обновлял метод, чтобы сохранить новые проверенные значения в дополнение к уже существующим, если они не были проверены.Ниже приведен пример кода на странице редактирования
<% Perk.all.each do |perk| %>
<input type="checkbox", class="hidden", value="<%= perk.id %>"
name="company[perk_ids][]" id="company_perk_ids_<%= perk.id %>"/>
<label class="category-choice <%= "active" if
@company.perk_ids.include? perk.id %>" for="company_perk_ids_<%=
perk.id %>">
<% perk.name %>
</label
<% end %>
Это пример кода в контроллере моей компании
def edit
@company = Company.find(params[:id])
end
def update
edit
@company.update(company_params)
if @company.update(company_params)
flash[:notice] = "Company profile successfully updated."
redirect_to @company
else
render :edit
end
end
А в моем js у меня есть
$(document).ready(function(){
$(".category-choice").click(function(){
$(this).toggleClass("active");
});
});