0
내 Track.rb 모델에 다음 코드가 있습니다. 더 많은 레일스 구문을 사용하여 이것을 작성하는 방법이 있습니까? 3.2이 SQL 쿼리를 Rails 3.2 구문으로 작성하는 방법은 무엇입니까?
@track = Track.find(7)
Submission.joins("LEFT JOIN missions ON missions.id = submissions.mission_id")
.joins("LEFT JOIN tracks ON tracks.id = missions.track_id")
.where("missions.track_id = ?", track.id)
모델 레일을 사용하여 임 : 모든
Track.rb
has_many :missions
Mission.rb
belongs_to :track
has_many :submissions
Submission.rb
belongs_to :mission
당신이 이러한 모델 사이의 관계가 있습니까 : 이런 생각으로
, 당신은 당신의 코드를 다시 작성할 수 있을까? 그렇다면 '포함한다'는 방법입니다. – tadman
그렇습니다. 내 모든 모델이 올바르게 설정되었습니다. –
만약 그렇다면 필요한 데이터를 eager-loading하여 해당 'belongs_to'유형 관계를 실행할 수 있습니다. 'includes '는 관련된 것을 다시 정의하는 모든 혼란없이 조인을 추가하는 효과가 있습니다. 조금 실험하고 생성 된 쿼리를 확인하십시오. 'has_many : missions, through : tracks'와 같은 것을 설정하여 처음부터 적절한 관계를 만들 수 있습니다. – tadman