0

私は2つのモデルを持っていimagesますcategories

関係は次のとおりです。

- 画像は 1 つのカテゴリに属します。

- カテゴリには多くの画像があります。

オブジェクトからのindex.html.erbビューではcategories、すべてのカテゴリでページごとに 20 枚の画像をページ付けしたいと考えています。

つまり、すべてのカテゴリのすべての画像を、1 ページあたり 20 枚の画像でページ付けしたいと考えています。

私のindex actiononcategories_controller.rbメソッドには次のものがあります:

def index
    @categories = Category.all
    @categories.each do |category| 
     @images = Kaminari.paginate_array(category.images).page(1).per(1)
    end
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @categories }
    end
   end

index.html.erb で私は持っています:

<% @images.each do |image|%>

code for each image here

<% end %>  
<% paginate @images %>

しかし、これは私にとってはうまくいきません。画像が示したものは何も見えません。

この機能を実装するにはどうすればよいですか? この問題を修正しますか?ありがとうございました。

4

1 に答える 1

1
@categories.each do |category| 
  @images = Kaminari.paginate_array(category.images).page(1).per(1)
end

このループでは、毎回@imagesをオーバーライドしているので、明らかに、期待したものが得られません;)

私はあなたがしたいことは次のとおりだと思います:

@images = Image.where("category_id IS NOT NULL").page(params[:page]).per(20)

.where("category_id IS NOT NULL")画像がカテゴリに属している必要がある場合は、これは必要ありません。

于 2012-04-05T17:42:22.727 に答える