모든 모델에 대해 최신 5를 가져온 다음 모든 레코드를 배열에 배치하고 배열을 정렬하고 처음 5 개의 요소를 가져옵니다.
# consider moving .order('date desc').limit(5) to a named scope or a module
announcements = Announcement.order('date desc').limit(5)
posts = Post.order('date desc').limit(5)
monkeys = Monkey.order('date desc').limit(5)
# .. add others here
elements = (announcements + posts + monkeys).sort_by(&:date).reverse[1..5]
변수 elements
은 존재하는 경우 5를 갖습니다.
참고 : 모든 모델에 "날짜"라는 메서드가 있다고 가정합니다. date_created 또는 기타로 변경할 수 있습니다.
이 코드를 여러 위치에 넣을 수는 있지만 홈 페이지를 렌더링하기 위해 특별히 만들어진 "홈"컨트롤러가 가장 좋습니다. 요소는 표시 동작에 따라 계산됩니다.
elements = (announcements | posts | monkeys).sort_by(&:date).reverse[1..5]
당신이 (사이드 바에서 예를 들어) 여러 페이지에이 코드를 사용해야 할 경우 다음 : 대신 egarcia에서 하나,이 구문을 사용하는 것이 더 확대됨에 있다면
질문을 다시 말하거나 (구체적으로 할 수 있습니까?) 미리 감사드립니다. –
설명하기가 매우 어렵습니다. 특히 영어로 나쁠 때. 하지만해볼 게. 레이아웃 부분에 nifty : layout을 사용합니다. 따라서 사용자 정의 application.html.erb 파일을 만들었습니다. 슬라이더를 사용하여 뉴스를 굴려 리뷰하고 물건을 만들 수 있습니다. 여러 테이블에서. 그래서 내 질문은 내 테이블에서 데이터를 가져 오는 방법입니다 (표는 몇 개 있습니다). 그런 다음 데이터를 꺼내십시오. @posts = Posts.find (..)의 게시물과 마찬가지로, 요점은 무엇입니까? –