我在Rails应用程序中有以下模型:
class User
include Mongoid::Document
...
end
class Admin < User
...
end
我找到了一位用户:
u = User.find(some_key)
并尝试更改_type:
u._type # => "User"
u._type = "Admin"
u.save
u._type # => "Admin"
但如果我重新加载对象,它仍然是用户:
u.reload
u._type = "User"
更正更改此方式的方法是什么?
答案 0 :(得分:8)
你也可以使用Model#update_attribute留下mongoid:
user.update_attribute(:_type, "Admin")
答案 1 :(得分:6)
使用原始MongoDB查询结束解决它:
users.update( { :"_id" => user.id }, { :"$set" => { :"_type" => "Admin" }})