2012-04-05 6 views
0

У меня есть 2 модели images и categories.Пагинальные детские модели Kaminari on rails 3.1

Отношения являются:

- это изображение относится к одной категории.

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

На 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 %> 

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

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

ответ

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

+0

- прекрасное решение, отлично работает: D. Большое спасибо! – hyperrjas

Смежные вопросы