0
카미나리 보석을 사용하여 일련의 사진을 페이지 매김하려고합니다. 이미지는 Dog 모델의 show 액션에 표시되고 CarrierWave를 사용하여 DogPhoto라는 별도 모델로 업로드되었습니다. DogPhoto는 Dog에 속하고 Dog에는 DogPhotos가 많이 있습니다.Carrierwave 및 Kaminari로 이미지 페이지 매기기
는 개 컨트롤러의 show 액션은 (@dog가 이전 필터에로드) 다음과 같습니다:
def show
@dog_photos = @dog.dog_photos.page(params[:page]).per(1)
end
그리고 쇼보기는 다음과 같습니다
<div id="dog_photos">
<% if @dog_photos.count > 0 %>
<% @dog_photos.each do |dog_photo| %>
<%= image_tag dog_photo.photo_url %>
<% end %>
<%= paginate @dog_photos %>
<% else %>
<%= image_tag("dog-with-no-photo.png", :border => false) %>
<% end %>
</div>
는 페이지가로드 될 때 올바른 사진 수 (사진 당 한 페이지)에 대한 페이지 매김 링크가 표시됩니다. 그러나 첫 번째 사진 만 표시됩니다. 사용자가 "2"를 클릭하면 dog-with-no-photo.png 대체 이미지가 대신 표시됩니다.
의견을 보내 주셔서 감사합니다. 내 목표는 페이지 당 하나의 사진을 표시하는 것입니다. '.per (1)'을 제거하면 모든 페이지가 단일 페이지로 표시됩니다. 목표는 사용자가 '다음 >>'을 클릭하여 한 번에 하나씩 사진을 탐색하도록하는 것입니다. –
Mea culpa. 'page'와'per' 메쏘드의 순서를 바꾸려고 했습니까? –
메쏘드를 반전 시키면 정의되지 않은 메쏘드 \'per '' 오류가 발생합니다. –