【问题标题】:Getting total result count from Rails query using will_paginate使用 will_paginate 从 Rails 查询中获取总结果数
【发布时间】:2013-01-02 08:50:48
【问题描述】:

我从我的 Rails 应用程序中获取对象列表,并像往常一样使用 will_paginate 进行分页,然后我有一个小方法用于将搜索的详细信息保存到数据库:

per_page=10
session[:search_params] = params[:search_people]
@documents = Person.search_people(params[:search_people], params[:page], per_page)

Search.create(:user_id     => (!current_user ? 0 : current_user.id),
   :search_type => "Person", 
   :firstname   => params[:search_people][:first_name], 
   :lastname    => params[:search_people][:last_name],
   :results     => @documents.count )

问题是,搜索结果的数量 (@douments.count) 总是

我明白为什么会这样,但是有没有办法绕过它而不运行两次查询,一次使用 will_paginate,一次不运行?

【问题讨论】:

    标签: ruby-on-rails will-paginate


    【解决方案1】:

    试试<%=@documents.total_entries%>

    【讨论】:

    • 太棒了,谢谢。当 SO 允许时,将在 9 分钟内接受
    • 不幸的是,这意味着第二个 SQL 查询,没有那个有什么办法吗?
    • 嗨@bcackerman,只要你使用will_paginate,它每次基本上都会做两件事:1.加载当前页面的结果。 2. 得到总数。所以,这是 total_entries 被初始化的时候。这就是计算这些页码的方式(总计/每页)。因此,它在您调用它之前已经初始化。没有更多的查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多