У меня есть три таблицы: задачи, отделы и задачи отдела. Мне нужно назвать "действительным?" на новых объектах задачи, но я хочу игнорировать валидность любых «встроенных» отделов. Мы делаем массовые загрузки, поэтому загружаем все или ничего.
Когда мы перебираем файл Excel, который читаем, мы строим новую «Задачу» в соответствии со значениями в каждой строке. С каждой строкой может быть связанный отдел для задачи; если есть, мы «строим» связанный объект Department_task следующим образом:
new_task.department_tasks.build(:department_id => d.id)
В конце цикла мы проверяем валидность нового объекта «задача», вызывая «valid?»
new_task.valid?
Если задание выполнено, оно попадает в «хорошую» кучу; если это плохо, это идет на «плохую» кучу.
Проблема в том, что мы не сохранили задачу, и поэтому она не имеет: id. Без идентификатора «встроенная» служба Department_task недопустима (должны присутствовать и: отдела_id, и: задачи_ид.).
Мне нужно знать, как я могу назвать «действительным»? или проверить правильность объекта «new_task» без проверки каскадом вниз к связанному объекту «task_department», который не может быть действительным до сохранения задачи.