MongoDB를 db로 사용하여 이벤트 플랫폼을 만들려고합니다. Events
과 Users
사이에 다 대다 관계가 필요합니다. 문제는 관계에 속성이 있어야합니다 (예 : Users
은 특정 Event
에 대해 확인되거나 확인되지 않음). 이것이 RDBMS에 이상적이라고 생각합니다. 그러나 MongoDB를 사용하여 다른 곳에서 이점을 얻고 있으며 계속 사용하고 싶습니다.시뮬레이션 has_many : through Mongoid
나는 각각 Event
에 Guests
, Users
에 속하는 다수를 포함시키고 싶습니다. 그렇게하면 어떤 사용자가 이벤트에 신속하게 참석하고 하나의 쿼리 만 사용하는지 확인할 수 있습니다. 그러나 어느 Events
User
이 신속하게 참석하고 있는지 알고 싶습니다. 따라서 각 User
에 Event
ID가 필요합니다.
다음은 코드 요약입니다. 이상적인 사용 패턴
# user of the application
class User
has_many :events
end
# event that users can choose to attend
class Event
embeds_many :guests
has_many :users, :through => :guests # Won't work
end
# guests for an event
class Guest
field :confirmed?, type: Boolean
embedded_in :event
belongs_to :user
end
# Ideal use pattern
u = User.create
e = Event.create
e.guests.create(:user => u, :confirmed => true)
,
e
는
u
및
u
참조와
Guest
을 갖는다
e
에 대한 참조를 갖는다.
내가 알고있는 has_many :through
라인이 작동하지 않습니다. 유사한 기능을 얻는 방법에 대한 제안 사항이 있습니까? Guest
에 after_create
콜백을 사용하여 Event
에 대한 참조를 User
에 추가하는 방법을 생각했지만 상당히 엉뚱한 것 같습니다.
어쩌면 잘못된 길을 갔을 수도 있습니다. 제안? 감사.
방금 귀하의 답변을 보았습니다. 나는 내 문제를 해결하는 방법을 게시했지만 관찰자를 사용하는 것이 더 깔끔했을 것이다. 감사! – cbrauchli
안녕하세요, nodrog, 링크가 깨졌습니다. –