Kaminari gem を使用して一連の写真のページ付けを試みています。画像は Dog モデルの show アクションで表示され、写真は CarrierWave を使用して DogPhoto という別のモデルにアップロードされています。DogPhoto は Dog に属し、Dog には多数の DogPhoto があります。
Dog コントローラーの show アクションは次のようになります (@dog は before フィルターに読み込まれます)。
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>
ページが読み込まれると、正しい数の写真 (写真ごとに 1 ページ) のページネーション リンクが表示されます。ただし、最初の写真のみが表示されます。ユーザーが「2」をクリックすると、代わりに dog-with-no-photo.png フォールバック画像が表示されます。