Как изменить _type документа в Mongoid? - PullRequest
7 голосов
/ 15 марта 2011

У меня есть следующие модели внутри приложения 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"

Каков правильный способ изменить это?

Ответы [ 2 ]

8 голосов
/ 07 октября 2011

Вы также можете использовать Model # update_attribute , чтобы остаться с mongoid:

user.update_attribute(:_type, "Admin")
6 голосов
/ 20 апреля 2011

Закончено решение с помощью необработанного запроса MongoDB:

users.update( { :"_id" => user.id }, { :"$set" => { :"_type" => "Admin" }})
...