레일/몽고드를 사용하여 모델에 동적 클래스를 만듭니다. 레코드에 액세스 할 때마다 특정 연관 레코드 (belongs_to, has_one)를 자동으로 포함하고자합니다. 따라서 이러한 모든 연관을 as_json 함수에 포함시켜야합니다.관계의 관계 일반화
'associations'메서드는 모든 관련 모델을 제공합니다. 그러나 포함하려는 연관 유형 만 필터링해야합니다. has_many 연관을 포함하면 엄청난 시간이 소요되는 데이터베이스 요청이 발생하고 데이터). 어떻게해야만 관련 연결 만 가져 오기 위해 연결 메서드의 출력을 필터링 할 수 있습니까?
내가 모든 협회를 통해 루프를 시도 :
협회 : 기관 {:
def as_json(options={})
selected_associations=[]
associations.each do |ass|
puts "Association:: ", ass, ass=>relation
if association=='Belongs_To' # Need the right instruction here
selected_associations.push(ass)
end
end
attrs = super(:include => selected_associations)
end
두고 콘솔에 출력 다음 각 협회 나에게 전달한다 (엔티티가 하나 개의 모델)의 관계 = > Mongoid :: 관계 :: 참조 : :: nil, : inverse_class_name => "WSAEntity", : name => "entities", : class_name => "WSAEntity", : validate => true}
': relation => ...'을 어떻게 평가할 수 있습니까? 속성이 필요하므로 위의 코드를 수정하고 필요한 연관 유형을 선택하는 데 사용할 수 있습니까? 아니면 모든 필터링 된 연관성을 가진 배열을 얻는 더 좋은 방법이 있습니까?
감사합니다, 마이클
을! 이것은 예상대로 작동합니다! 고마워, 마이클 –