2014-10-29 5 views
0

예를 들어, 30 개의 항목이 있으며 각 페이지에 3 개씩 (물론 많은 페이지가 있음) 표시되도록 항목을 나눕니다.레일스의 다른 페이지에 항목을 나누는 방법은 무엇입니까?

현재 URL에 매개 변수를 전달하고 액션에 Ruby 코드를 작성하여 구현했습니다.

x = params[:id] 
if x 
    @problems = [] 
    x = params[:id].to_i 
    t = Problem.all.count 
    i = 1 
    problem_numbers = -3 * (x - 1) 
    while t > 0 do 
    if Problem.exists?(i) 
     problem_numbers += 1 
     t -= 1 
     if problem_numbers > 0 
     @problems = @problems + [Problem.find(i)] 
     end 
    end 
    if problem_numbers == 3 
     break 
    end 
    i += 1 
    end 
end 

아주 잘 작동하지만,이 코드 조각은 이러한 기능에 다소 복잡 할 수 있습니다. 또한 많은 항목이있는 경우에도 모든 항목을 계산했기 때문에 방문 페이지가 느려질 수 있습니다.

더 편리한 방법이 있나요? 미리 감사드립니다.

+0

페이지 매김이 맞습니까? Checkout [will_pagine] (https://github.com/mislav/will_paginate) – Jordan

답변

0

여러 페이지에 항목을 표시하는 것을 페이지 매김이라고합니다. will_paginateKaminari은 매우 쉽게 Ruby on Rails 애플리케이션에 통합되는 방식으로이 기능을 제공하는 두 가지 인기있는 보석입니다.

+0

대단히 감사합니다. – pkqs90

관련 문제