在 HTML 中循环的分页 Rails 对象实例



在我的Rails应用程序中,我循环遍历符合特定标准的产品模型的所有实例,并将它们显示在用户的个人资料页面上。循环如下所示:

<% notsold = @user.products.where("sold_value = false").order("created_at DESC") %>
  <% notsold.each do |f| %>
    <% if f.sold_value === false %>
    // do stuff 
    <% end %>
  <% end %>

此视图是用户控制器下的配置文件.html.erb。我想弄清楚的是 如何分页f ,或创建的数组中的每个产品。我安装了will_paginate宝石。以下是 users_controller.rb 中的配置文件操作:

def profile
    @user = User.find(params[:id])
    respond_to do |format|
      format.html
    end
  end

有人知道该怎么做吗?

您可以在控制器中提供@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 %>

最新更新