Меня поразило это в другой версии Rails, и я думал, что сойду с ума.Хотя добавление update_only => true решило это, я думаю, что это ошибка где-то в Rails.
Симптомы в моем случае: я получал бы связь с удаленным bound_to и созданным новым вложенным объектом - пока я сначала не обновлю страницу,После этого он работал правильно.
В моем случае я добавил метод before_save во вложенный класс и распечатал то, что сохранил.Я также напечатал атрибуты перед вызовом update_attributes.У них "parent_id" установлен правильно.Я также включил скрытое поле идентификатора в форму, без изменений - что было нормально, поскольку оно уже было включено с помощью fields_for ...
Сюрприз: я видел один вызов обновления, генерирующий два вызова сохранения.При первом сохранении идентификатор вложенного объекта будет иметь значение NULL для идентификатора assign_to.- так что это обновит запись, чтобы установить "parent_id" в ноль.Во втором сохранении будет установлен «parent_id», но для идентификатора вложенного объекта будет установлено значение «ноль».
Как я уже сказал, я исправил это, добавив update_only => true, но я думаю, что это все еще ошибка.
Я хотел бы выяснить, относятся ли вышеуказанные симптомы к вашему случаю, чтобы подтвердить, что это ошибка.