Я бы хотел использовать функцию обратного вызова для проверки параметров accepts_nested_attributes_for на наличие дублирующихся записей и обновления вместо создания при выполнении условий.
Возможно ли это?
Что я пробовал:
before_validation :update_instead
def update_instead
unless self.id
existing_provision = Provision.where(survey_id: self.survey_id).where(service_id: self.service_id).first
if existing_provision
self.id = existing_provision.id
end
end
end
Это не работает, так как просто пытается создать запись с набором идентификаторов, что, очевидно,вызывает ошибку с повторяющимся идентификатором.