0

我有 2 个模型imagescategories.

关系是:

- 图像属于一个类别。

- 一个类别有许多图像。

在对象index.html.erb视图中categories,我希望为所有类别每页分页 20 张图像。

我的意思是,我想对所有类别的所有图像进行分页,每页 20 张图像。

在我index actioncategories_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 回答