mongoid: обновить вложенные атрибуты - PullRequest
0 голосов
/ 10 июня 2011

У меня проблема с обновлениями вложенных атрибутов для ссылочных документов, которые не сохраняются

> u = User.first
 => #<User...
> u.changes
 => {} 
> u.profile.changes
 => {} 
> u.attributes = {:profile_attributes => {:weight => 8}}
 => {:profile_attributes=>{:weight=>8}} 
> u.changes
 => {} 
> u.profile.changes
 => {"weight"=>[14.0, 8.0]} 
> u.update
 => true 
> u.shipping_profile.changes
 => {"weight"=>[14.0, 8.0]}

update / update_attributes / save all не сохраняют вложенные изменения.у меня attr_accessible :profile_attributes объявлено в пользовательской модели.

что нужно для сохранения вложенных атрибутов, когда родительский документ уже сохранен?

Ответы [ 2 ]

0 голосов
/ 11 июня 2011

оказывается, это монгоидная проблема. Я отправляю запрос на проверку с ошибочным тестом здесь https://github.com/mongoid/mongoid/pull/978 для тех, у кого есть такая же проблема. я просто вручную сохраняю / обновляю вложенные записи до тех пор, пока не решу

0 голосов
/ 10 июня 2011

Есть ли у вас в классе User следующее?

accepts_nested_attributes_for :profile

Если вы пропустите эту строку, я почти уверен, что она проигнорирует все попытки обновить вложенные записи через родительский элемент, используя update_attributes.

...