복붙노트

[RUBY-ON-RAILS] 활성 레코드와 여러 테이블에 참여

RUBY-ON-RAILS

활성 레코드와 여러 테이블에 참여

나는 좋은 손자 탭에 위치한 배너 이름을 알고 싶어요. 내 데이터베이스가 얼마나 다음과 같습니다

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

어떻게하면 모든 활성 기록을 내 비문 테이블의 배너 이름을받을 수 있나요?

해결법

  1. ==============================

    1.다음과 같은 작업을 수행 할 수 있습니다 :

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

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

    관계 이름은 항목 2 및 배너 필요가 각 관계에 주어진 이름과 일치하는 항목 1.

    이 쿼리의 경우 문을 설정하려면, 당신은 할 수 있습니다 :

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

    유제:

  2. from https://stackoverflow.com/questions/24266069/join-multiple-tables-with-active-records by cc-by-sa and MIT license