Разбивка дочерних моделей Каминари на рельсах 3.1

У меня 2 модели images и categories.

Отношения:

- изображение принадлежит к одной категории.

- в категории много изображений.

В представлении index.html.erb из объекта categories я хочу разбить на страницы 20 изображений для всех категорий.

Я имею в виду, что я хочу разбить все изображения из всех категорий по 20 изображений на страницу.

в моем методе index action на categories_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 %>

Но это для меня не работает. Я не вижу ничего, что показало изображение.

как реализовать эту функцию? и решить эту проблему? Спасибо.


person hyperrjas    schedule 05.04.2012    source источник


Ответы (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") не требуется, если изображения должны принадлежать к категории.

person Robin    schedule 05.04.2012