У меня есть следующий код
order_controller.rb
def update
order.update(order_params)
redirect_to client_frequent_orders_path
end
def order_params
params.require(:order).permit(
:name,
order_certifications_attributes: %i[id certification_id name]
)
end
Модель выглядит следующим образом
order.rb
has_many :order_certifications, dependent: :destroy
has_many :certifications, through: :order_certifications
accepts_nested_attributes_for :order_certifications, allow_destroy: true
Для каждогоЧтобы мы могли выбрать сертификацию из выпадающего списка сертификации.
Учтите, что я выбрал сертификацию с именем cert1 (id = 50). Он заполняется в БД.
Теперь я возвращаюсь к порядку и меняю выбор с cert1 на «Выбрать сертификацию». То есть я удалил выделение из выпадающего списка.
Теперь атрибуты order_certification_attributes не передаются в параметрах.
Таким образом, предыдущий сертификат "cert1" все еще существует в базе данных и отображается встр.
Как удалить существующую запись order_certification, если отправленные в параметрах order_certification_attributes пустые?