Tag: 分页

rails pagination – 后续页面中的不同per_page值第1页

我有一个博客/维基应用程序,我希望主页包含欢迎/登陆消息和5个最新的博客条目和链接到旧条目的分页。 例如,是否可以将5页作为分页搜索结果的第1页返回,将15页作为后续页面返回? 我目前正在使用will_paginate。

如何以这种方式对太阳黑子进行分页?

我有以下模型关联: class Product < ActiveRecord::Base has_many :prices class Price < ActiveRecord::Base belongs_to :product 这是我的控制器 class SearchController 5, :page => params[:page]) end @products = @search.results end end 然后我的看法: 假设我有10个产品,每个产品有20种不同的价格。 我的目标是每页显示5个产品,但如果页面上的价格数量一次超过25个,则价格会运行到下一页。 以下是我希望它做的两个不同的例子: Product 1, 2, 3, 4 + 5 Prices each = same page Product 5 + 6 Prices = this Product with Prices on next page […]

模型上的Rails .page调用也调用count

试着做一个简单的Model.all.page(1) 但是每当调用.page时,它都会创建一个SQL COUNT调用。 (我的实际代码比上面的代码更复杂,但为了便于阅读而简化了。)有没有办法阻止.page调用SQL计数? 我正在处理数以百万计的产品,这个调用正在使页面刷新需要额外的2秒钟来加载。 我已经有自己的自定义计数,这是即时的所以我不需要这个.page计数。 编辑:默认不使用.all。 不好的例子抱歉。 下面是一个非常简单的例子,简单来说就是我的代码: Product.limit(1).page(1) 用我的真实代码SQL产生: (1495.3ms) SELECT COUNT(*) FROM ‘products’ LEFT OUTER JOIN… 我加入了产品表,我不需要计算,因此事实上我有自己的计数方法,我想使用它并且不需要.page来生成它自己的计数。

如何建立分页url​​的路径?

当用户#1喜欢/评论用户#2时,用户#2会收到通知: 通知/ _notifications.html.erb commented on 但是在用户#2点击通知后,由于我删除了activity_path ,因此它没有任何结果,如果我之前将其放回(notification.activity_id)我们会收到错误: 没有路由匹配{:action =>“show”,:controller =>“activities”,>:id => nil}缺少必需的键:[:id] 我不知道这是否可行,但点击通知用户#2将被带到活动的分页页面 。 通过gem will_paginate每页有20个活动,因此如果被注释的活动在第2页上,那么在点击活动时,用户#2应该被定向到:http: //0.0.0.0 : gem will_paginate /activities?page = 2 这至少会缩小注释对用户的活动供稿的位置。 活动/ index.html.erb activity.id), class: “btn”, method: :post do %> Like activities_controller.rb class ActivitiesController params[:page], :per_page => 20) end def show redirect_to(:back) end end 如果您发现可以这样做,请告诉我您是否需要更多代码:) UPDATE class NotificationsController < ApplicationController def index […]

为什么搜索结果的分页不起作用?

骑在前一个问题上: Ruby on rails – 搜索结果的分页 这是我的模特: def self.search(title, company, location_id) if location_id.present? paginate :conditions => [‘title LIKE ? AND company LIKE ? AND location_id = ?’, “%#{title}%”, “%#{company}%”, location_id].last(200), :page => @page, :per_page => 20, :order => “total DESC” else paginate :conditions => [‘title LIKE ? AND company LIKE ?’, “%#{title}%”, “%#{company}%”].last(200), :page => […]

铁轨和kaminari

我有一个系统,在一个请求中生成数千个报告来填充表格,我使用kamanari为每页分页20条记录。 因为在单个请求中可能会有数千个报告被加载,所以无论请求格式是html还是json,它们有时需要几分钟才能加载。 我和kaminari尝试过很多东西。 my_controller.rb def my_table reports = unit.reports_for(history_date_range) #This could return possibly 10,000 reports paginated_reports = reports.order(‘time desc’).page(params[:page]).per(20) @reports = paginated_reports … end my_table.html.haml – @reports.each do |r| … = paginate @reports.page(params[:page]).per(20) 上述问题是kaminari不会仅向视图发送20条记录。 例如,它发送所有10,000个。 然后将它们分成20组分组。即使我点击第二页,它再次遍历整个分页路径,查询10,000条记录并在页面上显示20条记录。 而不是这个: = paginate @reports.page(params[:page]).per(20) 我也试过这个: = paginate @reports, :total_pages => 2 这仍然需要很长时间,但只显示总共2页,而不是所有页面。 我想要做的是如下。 假设总共有100个记录,这意味着有20个组中有50个页面。我只想查询前20个,将其发送回视图,并用这20个记录填充视图并有一个小箭头符号指示还有更多。 然后,当用户单击该箭头符号时,它仅查询下一组20条记录,将它们发送回视图,依此类推。 我不想一次查询这么多记录并让整个视图填充它们。

如何设置kaminari中第一页的初始偏移量?

我需要实现一些逻辑,以便在第一页上显示3个元素,在下一个页面上显示1个元素。 对于第一页没有问题: items = @model.limit(@first_page_items) 对于我试过的所有下一个: @model.offset(@first_page_items).page(@current_page – 1).per(@per) #makes no offset at all – all the items going from the beginning @model.page(@current_page – 1).per(@per).offset(@first_page_items) #produces 4-th element on the second page and stays on it for ever 我究竟做错了什么? 谢谢

没有gem的导轨分页

我的任务是为没有使用gem的Rails项目创建“前10个”,“下10个”,“最新”和“最旧”的链接。 在控制器中,我可以在表格中显示第一个(最新的)10个项目: … before_action :set_page, only: [:index] … def index @rows = Row.order(created_at:).limit(10) end … private def set_page @page = params[:page] || 0 end … 但是,我不相信这会正确设置每个10页的新页面,因为我无法更改页码(hxxp:// …?page = 1)以获得下一组10。 我已经尝试了我能找到的几页说明,包括: 没有gem的Paginate Next,Previous,Name.order(:id).limit(10).offset(0)的按钮 https://solidfoundationwebdev.com/blog/posts/next-and-previous-links-in-rails 任何方向都非常感谢。 至于第二个示例站点,我有两个模型类: ApplicationRecord <ActiveRecord :: Base 行<ApplicationRecord 看来我应该编辑: Row <ActiveRecord :: Base 但不知道在哪里找到/我应该如何添加它。 感谢您对初学者问题的耐心。 供参考,erb文件链接格式:

将Paginate:限制结果数量

我使用will paginate gem为ruby。 我正在使用paginate来获取一群人并在一个字段上排序。 我想要的只是前100个。 基本上是顶级人物。 我看不到这样做。 我该怎么办呢? 谢谢

kaminari ajax分页不更新分页

我正在使用kaminari gem在rails3中实现分页。 我一直在关注这个代码来自github https://github.com/amatsuda/kaminari_example/commits/ajax 不幸的是,以下代码 jQuery(’#pagginator’)。html(’ true).to_s)%>’); 似乎没有工作。 我的javascript用于做什么用户选择页面是什么 jQuery的( ‘一个’, ‘nav.pagination’)。点击(函数(){ //从href获取页面值 var page = jQuery(this).attr(’href’)。replace(’/ home / index?page =’,”); jQuery.getJSON(’?page =’+ page,function(data){ for(var r in data){ results.push(数据[R]); }); showResults(结果,(页面-1)* 10); jQuery(’#pagginator’)。html(’ true).to_s)%>’); }); showResults函数通过JSON运行并创建一堆html元素。 一切都很好,除了在重新加载结果时分页没有更新以显示当前页面。 我在firebug中没有任何错误,我使用Rails 3和ruby 192。