2010-07-02 4 views
0

안녕, 내 모든 동료 코더! 문제가 생겼습니다. ohh chok! .. : P 내 문제는 내가 더 큰 사이트의 디자인을 만들려고 노력하고 있다는 것입니다. 때까지 콘텐츠/뉴스 슬라이더를 만들어야합니다. 여러 테이블에서 데이터를 가져 와서 application.html.erb로 돌아와야합니다.레일 - SQL을 사용한 애플리케이션 레이아웃?

최근 5 시간 만에 리뷰와 공지 사항을 받아서 만든 후 주문하십시오. 그런 다음 application.html.erb에서 나에게 알려주세요. (Rails 3.0.0.beta4)

여러분이 저를 이해하기를 바랍니다.

+1

질문을 다시 말하거나 (구체적으로 할 수 있습니까?) 미리 감사드립니다. –

+0

설명하기가 매우 어렵습니다. 특히 영어로 나쁠 때. 하지만해볼 게. 레이아웃 부분에 nifty : layout을 사용합니다. 따라서 사용자 정의 application.html.erb 파일을 만들었습니다. 슬라이더를 사용하여 뉴스를 굴려 리뷰하고 물건을 만들 수 있습니다. 여러 테이블에서. 그래서 내 질문은 내 테이블에서 데이터를 가져 오는 방법입니다 (표는 몇 개 있습니다). 그런 다음 데이터를 꺼내십시오. @posts = Posts.find (..)의 게시물과 마찬가지로, 요점은 무엇입니까? –

답변

1

모든 모델에 대해 최신 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에서 하나,이 구문을 사용하는 것이 더 확대됨에 있다면

+0

안녕하세요, 고마워요.하지만 질문에 마지막 부분에 답장을하지 않았습니까? 컨트롤러. 그리고 아니, 데이트 방법이 없어? –

+0

확신 - 가정용 컨트롤러가 가장 좋습니다. 내 대답이 업데이트되었습니다. – kikito

0

몰라 가장 좋은 방법은 도우미를 작성하는 것일 수 있습니다 (예 : last_items)

관련 문제