몽고이드에서 편도 참조를 할 수 있습니까?몽고이드 - 편도 참조
class User
include Mongoid::Document
include Mongoid::Timestamps
has_many :blogs, :class_name => "Blog", :inverse_of => :editor
has_one :active_blog, :class_name => "Blog", :inverse_of => :active_users
end
및 블로그 모델 :
내가 좋아하는 일을 수행하고자하는 블로그를 참조하는 개체 ID를 저장하는 그래서, 기본적으로, 내가 사용하고 싶습니다
class Blog
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :editor, :class_name => "User", :inverse_of => :blogs
end
을 그 그것을 현재 편집/게시 중입니다. 나는 블로그가 활성 사용자에 대해 알 필요가 없으며, 다른 방법으로 만 알 수 있습니다.
사용자에게 'belongs_to'를 사용하고 블로그에는 'has_many'를 사용하는 것이 표준적인 방법처럼 보입니다. 이것은 효과가 있지만 실제로는 두 모델 간의 관계를 의미 론적으로 나타내지 않으므로 이상적이지 않습니다.
저는 몽고 이드를 처음 접했고 더 나은 답변을 찾을 수 없었습니다. 이러한 유형의 관련성을 설정하는 더 좋은 방법이 있습니까?
감사 톤! 반면 has_many/has_one에
class User
belongs_to :active_blog, :class_name => "Blog", :inverse_of => nil
end
및 belongs_to 나에게 완벽하게 잘 보인다 : 당신도 블로그면에 접근 active_user
을 만들지 않으려면
고마워요,이 모델은 여전히 관계를 표현하지 않습니다. (사용자는 블로그에 속한 것이 아닙니다.)하지만 내 코드를 항상 기대할 수는 없습니다. 영어처럼 읽으십시오. – Charles
더 나은 사운드를 원한다면'belongs_to'를'referenced_in'로 대체 할 수 있습니다 :) – rubish
Woot! 이것은 방금 저에게 많은 고통을 덜어주었습니다! – Daniel