루비 온 레일즈에서 최신 로그들을 가지고 오고 싶다면? 부모 모델과 연결된 자식 모델의 마지막 행들의 값을 가지고 오고 싶다면? (How to get recently log or last row of child model Ruby on Rails )

## 루비 온 레일즈에서 최신 로그들을 가지고 오고 싶다면? 부모 모델과 연결된 자식 모델의 마지막 행들의 값을 가지고 오고 싶다면? (How to get recently log or last row of child model Ruby on Rails ) 최근 루비 온 레일즈 프로젝트에서 부모 모델의 각 id에 연결 된 자식 모델의 행 중 맨 마지막 행의 특정 컬럼값이 몇 개인지 세야 했다. 예를 들자면 아래 이미지와 같은 느낌이다. 이미 SQL을 그대로 삽입해서 구현한 코드는 있었다. 코드는 아래와 같다. ```ruby parents = ParentModel.where("created_at > ?", date_value) parents.where("(SELECT event FROM child_model WHERE parent_model_id = parent_models.id ORDER BY created_at DESC LIMIT 1) = ?", ChildModel.events[:event_name]).count ``` 그러나 Rails way, DB 호환성 등을 위해 ActiveRecord를 사용한 코드로 바꿔야했다. 바꾼 코드는 다음과 같다. ```ruby parents = ParentModel.where("created_at > ?", data_value) #큰 의미 없음 ChildModel.where(parent: parents, id: ChildModel.group(:parent_model_id).maximum(:id).values).group(:event).count["event_name"] ``` ActiveRecord를 사용한 코드라 바꿨고, 걸리는 시간도 조금 줄었다. 코드 설명을 하자면 ChildModel에서 각 parents를 가지고 있으면서 각 ChildModel의 parent 모델의 id 값중 가장 큰 값(최근에 저장된 child mod...