1
나는 MongoDB를 아주 새로운 그리고 난은이 설정 다음에 포함 된 문서의 값을 업데이트시나와 mongomapper을 사용하고 있습니다 :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
나는 똑같은 것을 발견했습니다 ... 버그 일 수 있습니다. 나는 그 프로젝트에 대해 github을보고하고 그들이 말하는 것을 보게 될 것이다. –
버그인지 확실하지 않습니다. 수식어는 MongoDB 수식어를 둘러싼 단순하고 편리한 래퍼입니다. 수식어는 루비에서 관련 문서를 업데이트하지도 않고 곧바로 데이터베이스로 이동합니다. 그래서, ".push"는 MongoMapper 협회에 대해 알지 못할 것입니다. 'team_member.push (: team_member_projects => tm_project.to_mongo)'가 작동 할 수도 있습니다. –