[RUBY-ON-RAILS] will_paginate와 루비의 배열을 Paginating
RUBY-ON-RAILSwill_paginate와 루비의 배열을 Paginating
나는 다음과 같다 @ 레벨 1 배열을 가지고 :
[[3.0, 4, 2], [2.0, 48, 3], [2.1, 56, 4], ............]
나는 한 번에이 배열 등 각 페이지가 표시 몇 행에 페이지 매김을 적용 할. 나는이 시도 :
@temp1 = @level1.paginate(:page => params[:page])
그러나 다음과 같은 오류가 발생합니다 :
undefined method `paginate' for [[3.0, 4, 2], [2.0, 48, 3], [2.1, 56, 4]]:Array
어떻게하면이 사용 will_paginate에 페이지 매김을 수행 할 수 있습니다?
해결법
-
==============================
1.물론, 당신은 컬렉션을 통해 임의의 페이지 매김을 구성 WillPaginate :: 컬렉션을 사용할 수 있습니다. 배열 값이라고 가정하면 :
물론, 당신은 컬렉션을 통해 임의의 페이지 매김을 구성 WillPaginate :: 컬렉션을 사용할 수 있습니다. 배열 값이라고 가정하면 :
@values = WillPaginate::Collection.create(current_page, per_page, values.length) do |pager| pager.replace values end
당신은 will_paginate보기 도우미에 전달 포함한 다른 모든 WillPaginate 수집 등의 후 치료 @values을 할 수 있습니다.
-
==============================
2.https://github.com/mislav/will_paginate/blob/master/lib/will_paginate/array.rb 참조
https://github.com/mislav/will_paginate/blob/master/lib/will_paginate/array.rb 참조
당신이 그것을 시도하고 그것이 잘 작동하기 전에 그냥 'will_paginate / 배열을'이 필요합니다. 만약 그랬다면, 난은 설정 / initalizers / will_paginate_extensions.rb 그래서의 사용 가능한 즉시 사방에서 말에 그것을 넣어 것입니다.
-
==============================
3.레일 프로젝트에서 수집 배열을 감안할 때
레일 프로젝트에서 수집 배열을 감안할 때
will_paginate ~>3.0.5 collection.paginate(page: params[:page], per_page: 10)
배열 값의 페이지 매김을 반환합니다.
컨트롤러의 상단에 'will_paginate / 배열을'필요 잊지 마세요.
-
==============================
4.이의 대답에 본사를 둔 내 예입니다 @ 크리스 - 종광
이의 대답에 본사를 둔 내 예입니다 @ 크리스 - 종광
products = %w(i love ruby on rails) @products = WillPaginate::Collection.create(params[:page], params[:per_page], products.length) do |pager| pager.replace products[pager.offset, pager.per_page] end
-
==============================
5.나는이 스레드에서 제공하는 답변 정말 행복하지 않았다.
나는이 스레드에서 제공하는 답변 정말 행복하지 않았다.
나는이 솔루션을 함께했다.
# app/lib/paged_array.rb require 'will_paginate/array' class PagedArray delegate_missing_to :@paged_collection def initialize(collection, page: 1, per_page: 20) @paged_collection = collection.paginate( page: page, per_page: per_page ) end end
그리고 당신은 그런 식으로 사용할 수 있습니다 :
superheroes = %w[spiderman batman superman ironman] PagedArray.new(superheroes, page: 1, per_page: 2)
그것은 명시 이후 나는이 솔루션을 좋아하고 당신은 당신의 표준 클래스를 오염되지 않습니다.
존재가 말했다 내가 "delegate_missing_to"를 사용하기 때문에, 당신은 레일 따라 달라집니다.
from https://stackoverflow.com/questions/13187076/paginating-an-array-in-ruby-with-will-paginate by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 유증에 대한 사용자 인증 전략 (0) | 2020.02.12 |
---|---|
[RUBY-ON-RAILS] JSON 출력에 가상 속성을 추가합니다 (0) | 2020.02.12 |
[RUBY-ON-RAILS] 레일 원숭이 패치 3 (0) | 2020.02.12 |
[RUBY-ON-RAILS] 어떻게 레일에 사용 SSL에에 WEBrick을 구성해야합니까? (0) | 2020.02.12 |
[RUBY-ON-RAILS] 레일의 파괴에 I '검증'을 어떻게 (0) | 2020.02.12 |