Я новичок в mongodb и использую sinatra и mongomapper для обновления значений встроенного документа со следующими настройками:
class TeamMember
include MongoMapper::Document
key :name, String, :required => true
many :team_member_projects
end
class TeamMemberProject
include MongoMapper::EmbeddedDocument
key :date, Date, :required => true
one :project
end
class Project
include MongoMapper::Document
key :name, String, :required => true
end
Код модификатора:
team_member = TeamMember.find(params[:team_member])
project = Project.find(params[:project])
date = Date.parse(params[:date])
tm_project = TeamMemberProject.new(:project => project, :date => date)
team_member.push(:team_member_projects => tm_project)
team_member.save
но я получаю сообщение об ошибке для строки .push
:
BSON::InvalidDocument at /project/add
Cannot serialize an object of class TeamMemberProject into BSON.
Не правильно ли я объявил свой встроенный документ?Или есть другой способ обновления встроенных документов, о которых я не знаю.Я пытаюсь использовать: http://mongomapper.com/documentation/plugins/modifiers.html#push