2012-02-08 3 views
0

Mongo에서 작동하도록 사용자 정의 관계 이름을 얻으려고합니다.사용자 정의 레일/몽구스 관계 이름이 작동하지 않습니다.

"콜라주"는 작업 ID 인 BSON 필드로 채워진 BSON 문서입니다. "콜라주"에 대한 데이터베이스의 내용은 다음과 같습니다.

Collage.create(slide_one: client.work.first.id, slide_two: client.work.second.id, slide_three: client.work.third.id) 

이렇게 콜라주는 작품 ID로 가득한 몽고 기록입니다. @collage.work_one 또는 @ collage.slide_one.work_one 또는 @ collage.slide_one.work을 작성하여 원하는 작업에 도달하고 싶습니다.

이러한 연관성을 사용자 지정하는 것은 효과가 없습니다. 지금까지 나는 두 가지를 시도했다 :

이것은 mongo 웹 사이트에서하는 것처럼 보이지만, 내가 설정하고 @ collage.work_one.inspect를 호출하면 나는 0이된다. http://mongoid.org/docs/relations.html (페이지 하단)

collage.rb

has_one :work_one, class_name: 'Work', inverse_of: :slide_one 

work.rb collage.work_one.inspect @

belongs_to :slide_one, class_name: 'Collage', inverse_of: :work_one 

은 말 그대로 단지

"전무"출력합니다.

.

uninitialized constant WorkOneable 

어떤 도움이나 아이디어가 많이 주시면 감사 :

는 또한

belongs_to :work_oneable 

는하지만 그건 나에게주는

collage.rb

has_one :work_one, class_name: 'Work', as: :work_oneable 

work.rb을 시도!

답변

1

클래스 선언이 정확하다고 생각합니다 (첫 번째 클래스). 그러나 다음과 같이 필드를 할당 할 때 id 대신 실제 객체를 사용해야합니다.

Collage.create(slide_one: client.work.first, slide_two: client.work.second, slide_three: client.work.third) 

희망 사항.

+0

고마워요! 나는 이런 식으로 일을 끝내지 않았지만, 나중에 사용하기 위해 나의 응답 뱅크에 응답을 넣을 것이다. :) – Nick

관련 문제