Fed*_*les 7 ruby-on-rails mongodb mongoid
我在Rails应用程序中有以下模型:
class User
include Mongoid::Document
...
end
class Admin < User
...
end
Run Code Online (Sandbox Code Playgroud)
我得到一个用户:
u = User.find(some_key)
Run Code Online (Sandbox Code Playgroud)
并尝试更改_type:
u._type # => "User"
u._type = "Admin"
u.save
u._type # => "Admin"
Run Code Online (Sandbox Code Playgroud)
但是,如果我重新加载对象,它仍然是一个用户:
u.reload
u._type = "User"
Run Code Online (Sandbox Code Playgroud)
改变这个的正确方法是什么?
你也可以使用Model#update_attribute来保持mongoid:
user.update_attribute(:_type, "Admin")
Run Code Online (Sandbox Code Playgroud)
通过使用原始MongoDB查询结束解决它:
users.update( { :"_id" => user.id }, { :"$set" => { :"_type" => "Admin" }})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2565 次 |
| 最近记录: |