사용자 메시지를 db에 저장합니다. 마지막 10 개의 레코드를 질의하고 역순으로 반환해야하므로 사용자가 message_1, message_2 및 message_3을 생성한다고 가정합니다. 결과를 [message_1, message_2, message_3]
과 같이 주문하고 싶습니다. 즉, 마지막 메시지가 결과에서 마지막입니다. 그러나이 범위 : [message_3, message_2, message_1]
같은N 개의 레코드를 범위 역순으로 역순으로 조회합니다.
scope :last_page, ->() { order('created_at DESC').limit(10)
수익률 기록, 즉 마지막 메시지는 상단에 있습니다. 나는 무엇을 시도했다
은 다음과 같습니다
오히려ActiveRecord::Relation
보다, 원하는 결과를 생성하지만 배열을 반환
scope :last_page, ->() { order('created_at DESC').limit(10).sort_by(&:created_at) }
. 배열보다는 관계를 반환하는 범위를 좋아합니다. 어떻게하면 될까요?
당신은 범위 안에'sort_by'을 사용할 수 없습니다. 범위는 체인이며 SQL을 작성합니다. 'sort_by' 루비 열거 메서드는 메모리에 데이터와 함께 작동합니다. 다른 유용한 트릭을 정확하게 적용해야합니다. –
정확하게 맞습니다. 왜 네가 소팅하는지 물어볼거야? '명령 ('... ')이 그것을 처리하지 않습니까? – jaydel