2014-06-17 3 views
1

큰 손자 탭에있는 배너 이름을 알고 싶습니다. 내 데이터베이스의 모습은 다음과 같습니다.활성 레코드가있는 여러 테이블에 가입하십시오.

Inscription (where I need to start from): Item1_id 
Item1: Item2_id 
Item2: Banner_id 
Banners: name 

활성 레코드가있는 내 비문 테이블의 모든 배너 이름은 어떻게 얻습니까?

+1

'Inscription.includes (항목 1 : {항목 2 : 배너})'이름은'item1'이,'item2'와'banner'는 (예 : 각 관계에 주어진 이름과 일치해야합니다 'Inscription has_many : : items2'를 설정하면'.includes (: items2)'를 사용해야합니다. (원하면 같은 인자로'.joins'을 쓸 수 있습니다.) – MrYoshiji

+0

고마워요! @MrYoshiji 어디에 (name == "")를 추가하려면 어떻게해야합니까? – zoum26

+1

'join '/'include'가 끝나면'.where (name : "")'를 끝에 추가하십시오. –

답변

2

는 다음과 같은 작업을 수행 할 수 있습니다

Inscription.includes(item1: { item2: :banner }) 

관계 이름 item1, item2banner 각 관계에 주어진 이름과 일치해야합니다. 이 쿼리에 where 문을 설정하려면

, 당신은 할 수 있습니다 :

scope = Inscription.includes(item1: { item2: :banner }) 
scope = scope.where(banner: { name: "MOTD: Hello World!" }) 
scope = scope.where(item2: { is_favorite: true }) 

비슷한 질문 :

관련 문제