2017-10-18 263 views
2

我有一个Rails 4.2.8应用程序使用Mongoid 5.2.0。我想在没有更新数据库的情况下更新记录。基本上,我想模仿User.new(user_params),而是更新。Mongoid - 分配属性而不保存

现在,ActiveRecordassign_attributes方法,但Mongoid版本似乎无论如何更新数据库!这是一个错误还是有另一种方法来达到这个目的?

+0

我用Rails 5.1.3和6.2.1 Mongoid。一个新实例化的Object可以在我的设置jfi中保留一个> .new_record?<<。 – Ekkstein

+0

是的,这是一个新的记录。我想更新内存中的现有记录,而不实际将这些更改保存到数据库(尚)。 –

回答

0

与@Ekkstein相同 - 在较新的Mongoid上适用于我的请求者。

Docs有一个方法update_attributes如在https://mongoid.github.io/old/en/mongoid/docs/persistence.html#standardassign_attributes看到的作品没有保存。

如果所有失败,请尝试

class User # apply attributes one by one def silly_update_attributes(attributes) attributes.each_pair do |k,v| self[k] = v end end end