2014-07-11 2 views
3

특정 모델에 대한 연결 배열을 만들 수있는 방법이 있습니까? 이 같은 것을 사용 할 수 있도록모델에 대한 연관 배열

#app/models/users.rb 
class Users < ActiveRecord::Base 

has_many :things 
has_many :other_things 

@associations[ things, other_things ] 

: 모델이 협회 중 하나 이상이있는 경우

#app/models/users.rb 
@associations.select {|s| (s.count > 0)} 

확인합니다. 이것은 내 응용 프로그램에서 매우 유용하며 가능한 구현하려고하는 많은 동작을 추상화합니다.

답변

1

가이 작업을 수행하는 우아한 방법입니다,하지만 하나 개의 솔루션은 단지 배열에 연결을 래핑하는 방법 작성하는 것입니다 경우 모르겠어요 : 위와 같이,

def array_of_associations 
    [things, other_things] 
end 

귀하의 코드를 것 다음 작업 :

model_instance.array_of_associations.select {|s| s.count > 0} 

이, 물론, 인스턴스 수준이지만, 범위 또는 클래스 메소드와 클래스 수준에 압축을 풉니 다 너무 복잡하지 않아야합니다. 당신은 사물과 other_things 배열을 가지고 all_things를 호출 할 때

+0

이것은 작동합니다! 엄청 고마워 – Harbinger

-1

당신은 이제 두 배열

def all_things 
    things + other_things 
end 

처럼 두 개의 연결을 추가 할 수 있습니다.

그러나 사물과 다른 것들이 다른 모델 인 경우주의하십시오.