두 개의 다른 연결을 결합하는 추가 연결을 만들고 싶습니다.두 개의 'has_many_through'연결을 다른 연결에 연결하는 방법은 무엇입니까?
class Person < ActiveRecord::Base
has_many :cats
has_many :dogs
has_many :pets(dogs and cats) ???
end
누구나 이것을 수행하는 좋은 방법을 알고 있습니까?
편집 :. 나는 관계없이 자신들이 무엇인지 열의 조인 테이블에서 기록을 당길 필요가
이 내가 두 번 DB를 핑 (ping) 할 필요가 없습니다 너무 순수 최적화 질문입니다 각 협회마다.
편집 : 데이터 예제의 가난한 세트를 선택한
.
class Person < ActiveRecord::Base
has_many :senders (is a person object)
has_many :receivers (is a person object)
has_many :contacts(friends and enemies) ???
end
필드는 내가 레일 방식으로하고 싶은 말은 friend_id 및
을 enemy_id이 팩스이라는 조인 테이블이있다 : 당신은 클래스 상속을 활용한다SELECT DISTINCT persons.*
FROM persons
WHERE persons.id IN
(
SELECT faxes.sender_id
WHERE fakes.receiver_id = (?)
)
OR persons.id IN
(
SELECT faxes.receiver_id
WHERE fakes.sender_id = (?)
)
유사
뭔가 당신이 DB를 두 번 핑 무엇을 의미합니까? 여러 SELECT 문과 같은 의미입니까? 그렇다면 단일 선택으로 고양이와 개 모두를 검색하는 유일한 방법은 STI를 사용하여 동일한 테이블에 저장하는 것입니다. –