0

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 フォールバック画像が表示されます。

4

1 に答える 1

0

ページあたりの写真の数が 1 つだけに制限されるため.per(1)、アクション内のコードを削除する必要があります。show

于 2011-03-31T10:09:16.333 に答える