Paginate Rails экземпляры объекта зациклены в HTML?
В моем приложении Rails я перебираю все экземпляры модели Product, которые соответствуют определенным критериям, и отображаю их на странице профиля пользователя. Вот как выглядит цикл:
<% notsold = @user.products.where("sold_value = false").order("created_at DESC") %>
<% notsold.each do |f| %>
<% if f.sold_value === false %>
// do stuff
<% end %>
<% end %>
Это представление - profile.html.erb под контроллером пользователя. То, что я пытаюсь выяснить, это как разбить на страницы f
или каждый из продуктов в созданном массиве. У меня установлен драгоценный камень will_paginate. Вот действие в профиле users_controller.rb:
def profile
@user = User.find(params[:id])
respond_to do |format|
format.html
end
end
Кто-нибудь знает, что делать?
1 ответ
Вы можете предоставить @products
переменная экземпляра в контроллере, как это
@products = @user.products.where("sold_value = false").order("created_at DESC").paginate(:page => params[:page], :per_page => 30)
Тогда вы можете зациклить @products
в вашем коде
<% @products.each do |f| %>
<% if f.sold_value === false %>
// do stuff
<% end %>
<% end %>