mongodb에 포함 된 문서를 업데이트하는 데 문제가 있습니다.
다음 시나리오가 있습니다. 사용자 모델에 주소가 포함 된 문서가 있습니다.
부모 모델에 주소를 임베드 할 수 있습니다. 사용자 모델하지만 난 여전히 주소가 i가 포함 된 주소의 _id
임베디드 문서 mongodb를 mongoid로 업데이트
후 부모로부터 포함 된 문서를 검색 할 수
감사
mongodb에 포함 된 문서를 업데이트하는 데 문제가 있습니다.
다음 시나리오가 있습니다. 사용자 모델에 주소가 포함 된 문서가 있습니다.
부모 모델에 주소를 임베드 할 수 있습니다. 사용자 모델하지만 난 여전히 주소가 i가 포함 된 주소의 _id
임베디드 문서 mongodb를 mongoid로 업데이트
후 부모로부터 포함 된 문서를 검색 할 수
감사
당신은이를 도와주세요에도 불구하고 임베디드 업데이트하는 방법을 알아낼 질수 업데이트 작업을하십시오. 예 :
address = user.address
address.update_attributes(:street => "foo")
다른 해결책이 있습니다. Person 클래스와 Preference 클래스 사이에 다 대다 관계가 있다면,
ruby-1.9.2-p0 > Person.count
=> 0
ruby-1.9.2-p0 > Preference.count
=> 0
ruby-1.9.2-p0 > person = Person.create
=> #< Person _id: 4cd353e92b58af214b000006, preference_ids: []>
ruby-1.9.2-p0 > pref = Preference.create
=> #< Preference _id: 4cd353ee2b58af214b000007, person_ids: [], name: nil>
ruby-1.9.2-p0 >
ruby-1.9.2-p0 > person.preferences << pref
=> true
ruby-1.9.2-p0 > Preference.first.people.count
=> 1
ruby-1.9.2-p0 > Person.first.preferences.count
=> 1
ruby-1.9.2-p0 >
ruby-1.9.2-p0 > person.preferences.first.name = 'foobar'
=> "foobar"
ruby-1.9.2-p0 > person.preferences.first.save
=> true
ruby-1.9.2-p0 > pref.reload
=> #< Preference _id: 4cd353ee2b58af214b000007, person_ids: [BSON::ObjectId('4cd353e92b58af214b000006')], name: "foobar">
ruby-1.9.2-p0 > pref.name
=> "foobar"
답장 jpemberthy, 에 대해 고마워요.하지만 여전히 저에게는 효과가 없습니다. 분명히 내 개발 로그에 다음과 같이 볼 수 있습니다 project_name_development [ 'people']. ({ "_ id"=> BSON :: ObjectID ('4c5106b6f1936f036c000008'), "address._id"=> "4c5106b6f1936f036c000006"}, "$ set"=> { "address.city"=> "bhaktapur", "address.province"=> "kathmandu"}}) 주소를 업데이트해야한다고 생각합니다. 그리고 내 person 모델에서 "address.update_attributes (address_attribute)"가 있습니다. address_attribute는 주소의 해시입니다. 뭔가 빠졌습니까? – Gagan
나는 그때 무슨 일이 일어날 지 모르겠다. 원할 경우, 콘솔 흐름과 모델 코드를 요점에 붙여 넣으십시오. 그러면 도움이 될 것입니다. – jpemberthy
답장을 보내 주셔서 감사합니다. 나는 그것이 업데이트되지 않도록 내 모델에 오류가 있다는 것을 알아 냈다. 다시 한 번 감사합니다 – Gagan