#ruby-on-rails #mongoid #persistence
#ruby-on-rails #mongoid #постоянство
Вопрос:
я столкнулся с проблемой, из-за которой обновления вложенных атрибутов для документов, на которые ссылаются, не сохраняются
> 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_attributes/сохранить все вложенные изменения не сохраняются.
я attr_accessible :profile_attributes
объявил в пользовательской модели.
что необходимо для сохранения вложенных атрибутов, когда родительский документ уже сохранен?
Ответ №1:
Есть ли у вас следующее в вашем User
классе?
accepts_nested_attributes_for :profile
Если вы пропустили эту строку, я почти уверен, что она проигнорирует все попытки обновить вложенные записи через родительское использование update_attributes
.
Ответ №2:
оказывается, это проблема с mongoid. я отправляю запрос на извлечение с неудачным тестом здесьhttps://github.com/mongoid/mongoid/pull/978 для всех, у кого такая же проблема. я просто вручную сохраняю / обновляю вложенные записи до их разрешения