没有 Gem 的 Rails 分页

2024-05-22

我的任务是在不使用 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 进行分页 Next、Previous、Name.order(:id).limit(10).offset(0) 按钮 https://stackoverflow.com/questions/36070685/paginate-without-a-gem-next-previous-buttons-for-name-orderid-limit10-off

  • https://solidfoundationwebdev.com/blog/posts/next-and-previous-links-in-rails https://solidfoundationwebdev.com/blog/posts/next-and-previous-links-in-rails

任何方向都非常感激。至于第二个示例站点,我有两个模型类:

  • ApplicationRecord

看来我应该编辑:

但不知道在哪里可以找到/我应该如何添加它。感谢您对初学者问题的耐心解答。

作为参考,erb 文件链接格式:

<%= link_to 'Next 10', rows_path %>

您所得到的一切都在正确的轨道上,除非您没有告诉数据库您实际上想要检索接下来的 10 条记录。为此,您需要通过offset它告诉数据库您要检索接下来 10 条记录的“起点”。

您可以通过以下方式在代码中执行此操作:

def index
  @rows = Row.order(created_at: :desc).limit(10).offset(@page * 10) # This assumes that the page numbering starts from 0 instead of 1 as I gather from the question
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有 Gem 的 Rails 分页 的相关文章

  • Ruby on Rails:有条件地显示部分内容

    我不确定我在这里是否采用了最好的方法 但我有一个数据块 我想在搜索完成后显示它 并且之前根本不存在 首先 没有什么可显示的 其次它引用的模型为零 因此它抛出异常 我将此块放置在部分模板中 并将其添加到布局中的适当位置 有没有办法有条件地干净
  • ActiveRecord 将字符串解析为日期时间?

    如果我通过了String into Datetime创建新的 AR 对象时 它会自动解析列 1 9 2p290 011 gt Movie new release date gt 21 Nov 1990 gt
  • Ruby Net:SSH控制大师?

    我目前有一个 Ruby Rails 应用程序 需要建立大量的短 SSH 连接 使用 Ruby Net SSH 库可以正常工作 只是每次我想发出命令时应用程序都必须登录并协商密钥 这太慢了 有没有办法使用 Ruby Net SSH 启用 Co
  • Rails 3:如何获取特定时区今天的日期?

    为了获得今天的日期 我这样做 Date today gt Fri 20 May 2011 我想获取特定时区的今天日期 例如 Melbourne 我的设置中有以下设置application rb config time zone Melbou
  • Rails 4 ExecJS::Listings#index 中的程序错误

    将 JavaScript 添加到我的网络应用程序后 我现在收到以下错误 ExecJS ProgramError in Listings index stdin 16 5 error unexpected else else in Users
  • Rails - 动态构建深度嵌套对象(Cocoon /nested_form)

    我目前有一个具有深层嵌套的复杂形式 并且我正在使用Cocoon https github com nathanvda cocoongem 根据需要动态添加部分 例如 如果用户想要在销售表单中添加另一辆车 代码如下所示 div class a
  • 如果父模型是新的并且子模型中不为空,则 ActiveAdmin has_many 表单不会保存

    我有两个模型 Room and Student Room has many Students Student belongs to Room 我收到一个错误房间不能为空当我在创建新房间期间尝试将学生添加到房间时 我的猜测是 提交后 子对象
  • Ruby on Rails - 向所有路由添加 ID 参数

    我想知道在 Rails 路由中实现以下功能的最佳方法是什么 场景 一个网站 用户注册账户 gt accountID 账户 成为网站内的主要实体 例子 https basecamp com ID https basecamp com ID 将
  • 水豚找不到元标签

    Capybara 2 1 0 似乎没有找到任何元标记 rdb 1 p page find meta Capybara ElementNotFound Exception Unable to find css meta 即使他们出现在page
  • Rails 验证日期范围的唯一性

    我有一个涉及员工缺勤记录的应用程序 我需要确保每条记录的开始日期和结束日期不重叠 例如 如果我输入了从今天开始到明天结束的缺勤记录 则不可能以任何方式在该日期范围内输入另一个缺勤记录 所以我不能制作一个从前天开始 然后在后天或任何更晚的日期
  • 在 debian Squeeze 上安装 RoR

    有什么方法可以在我的 debian squeeze 上安装 Ruby 1 9 2 或 1 8 7 Rails 3 吗 您可能不想在生产计算机上使用 RVM 它的 PATH 魔力会在不明显的地方 例如 cron 作业 被破坏 然后你就会陷入困
  • Rails 资产管道:CSS 无效

    我正在尝试使用http designshack net articles css build an animated photo wall with css http designshack net articles css build a
  • 更改 ag-grid 上的页面和缓存块大小会导致项目无限加载

    我希望使用 ag grid 的 服务器端 模式重新获取每个页面的数据 为了做到这一点 我将 maxBlocksInCache 1 和 cacheBlockSize 设置为等于每页的项目数 到这里为止一切正常 现在 当我更改每页的项目数时 网
  • 如何检查rails上传的文件类型?

    我如何查看即将到来的文件类型 例如 csv 或 xls 请给个代码 我得到文件是这样的 aut name uploaded io original filename File open Rails root join public uplo
  • Partial、Layout、Template 渲染问题

    情况 因此 当我访问页面时 我希望能够将布局应用到部分 我想要三个具有相同布局的部分 现在 我正在尝试使用以下命令来执行此操作 where shared services essay是这样的 p blah p div blah div
  • 如何使用 RSpec 检查 JSON 响应?

    我的控制器中有以下代码 format json render json gt flashcard gt flashcard lesson gt lesson success gt true 在我的 RSpec 控制器测试中 我想验证特定场景
  • 如何使用 ruby​​ 的循环和 haml 创建表?

    我正在尝试制作一个如下所示的 html 表 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 我的数据结构是这样的 f ary 1 250 这是我的哈姆尔代码 table border gt 1 tbody tr cnt 0 f
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • 通过使用 Minitest 的 Rails,如何设置 RuboCop 在每次使用 rake 运行测试时自动运行?

    当我运行以下命令时 我想要RuboCop https github com bbatsov rubocop在测试运行之前检查我指定的应用程序目录 bundle exec rake test 我添加了以下任务lib tasks test ra
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV

随机推荐

  • 使用 VBA 将 Excel 工作表导入 Access

    我正在尝试使用一些简单的 VBA 代码将 Excel 电子表格导入到 Access 中 我遇到的问题是 Excel 文件中有 2 个工作表 我需要导入第二个工作表 是否可以在VBA代码中指定所需的工作表 Private Sub Comman
  • 升级到 Visual Studio 2012 后,链接文件出现 MSBuild 错误“CSC:错误 CS2001:无法找到源文件 'x'”

    自动升级 Net 4 0 Web 应用程序的项目文件以与 Visual Studio 2012 一起使用后 一开始一切正常 但是在编译时出现很多错误 如下所示 说明 找不到源文件 文件路径 文件 CSC 当尝试在 VS2012 的开发人员命
  • 在我授予许可后,表面视图不显示相机

    public View onCreateView LayoutInflater inflater Nullable ViewGroup container Bundle savedInstanceState View view inflat
  • 禁用 chrome React DevTools 以进行生产

    我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE ENV 因此 我可以删除反应警告 控制台中的错误报告 甚至我的代码来禁用某些功能 例如react addons perf的要求 而且效果很
  • 无法解析 Java 中的方法

    我有一个Question具有 4 个的对象Answer里面的物体 在 Question java 我有一个方法是 public Answer getA return a 在另一种方法中我有 if questions get randomNu
  • Python 3.8 ModuleNotFoundError:没有名为“PIL”的模块

    我刚刚从 3 7 升级到 3 8 我的脚本运行得非常好 直到我升级到 3 8 我有这行代码 from PIL import Image ImageTk ImageGrab 并返回我的错误 from PIL import Image Imag
  • cordova - 删除不必要的权限

    我需要在游戏中播放声音 因此我将 org apache cordova media 插件添加到我的应用程序中 现在platforms android AndroidManifest xml包含2个我不需要的条目
  • md5() 是做什么用的?

    我正在阅读本教程简单的PHP登录系统 http www phpeasystep com workshopview php id 6 最后它建议你应该使用 md5 加密您的密码 http www phpeasystep com worksho
  • 安装 R 包。包含目录为空。开发标头

    我目前正在尝试运行一些最初在 2 11 0 下运行的 R 代码 我使用的 R 版本 2 14 1 无法运行该代码 我不熟悉 R 及其向后兼容性 据我所知 我的问题可能与版本无关 我会很高兴得知这是我做错的事情 其余的代码是无关紧要的 即使我
  • YouTube 360​​ 视频 iframe 无法在移动浏览器中工作

    我正在尝试为 YouTube 360 视频获取嵌入的 iframe 以便在我的移动网站上播放 它在桌面浏览器上运行良好 但在移动浏览器中我只能播放平面立体视图 我可以确认它绝对是一个 HTML5 播放器 这显然是其他人正在经历的一个未解决的
  • 如何避免用户帐户控制或在Win7中始终以管理员模式运行Windows应用程序

    在 WinForms 应用程序中 当我的应用程序启动时 将出现 用户帐户控制 对话框 仅在 Windows 7 中 任何人都可以建议我如何以编程方式避免这种情况 也就是说我的应用程序应该始终以管理模式启动 或者是否有任何选项可以阻止此对话框
  • 打包/解包 - 小端 - 64 位 - 问题

    usr bin env perl use warnings use 5 012 my var 1 lt lt 31 say unpack B pack N var 10000000000000000000000000000000 我怎样才能
  • Chart.js 渲染垂直堆积条形图太慢

    我正在使用 Chart js API 渲染多个堆叠的垂直条形图 但性能很慢 我什至做了一些改变 这样所有的content对象已经由服务器而不是浏览器处理 但我意识到大部分时间来自最终函数new Chart overallStatsChart
  • 如何备份Solr数据库?

    我想知道如何备份 转储 Solr 数据库 如果只是复制一些文件 请指定哪些文件 文件名 位置等 Thanks We use Solr复制 http wiki apache org solr SolrReplication做我们的备份 您可以
  • InflateException 膨胀类 android.support.design.widget.CoordinatorLayout 时出错

    E AndroidRuntime 致命异常 main 进程 com atech a business PID 30662 java lang RuntimeException 无法启动活动 ComponentInfo com atech a
  • python:正则表达式匹配文件扩展名

    您好 我正在尝试获取 url 中调用的文件的扩展名 例如 wp includes js jquery jquery js ver 1 3 2 HTTP 1 1 并获取传递到文件的查询参数 延期的最佳方式是什么 urlparse urlpar
  • MySQL 5:我的 GROUP BY 字段的顺序重要吗?

    Peeps 我的 MySQL 查询中有一些聚合 计算字段 我的 GROUP BY 子句是动态生成的 具体取决于用户在 Web 表单中选择的选项 很好奇 GROUP BY 子句中列出的字段顺序是否会对计算产生任何影响 例如 SUM AVERA
  • Python 海龟图形 - 将一只海龟带到前面

    我的程序中有两只乌龟 它们碰撞在一起时发生了动画 但我希望一只乌龟位于另一只乌龟的上方 如下所示 所以 我的问题是 我怎样才能实现这一点 是否有一行简单的代码 例如 turtle front 如果不是的话是什么 我在回复中简要讨论了这一点使
  • 使用 Google Advanced Drive 服务通过 Apps 脚本在文件夹中创建新文件

    创建新文件有四种方法 DocsList 显示为DocsList在主列表中 内置于 Apps 脚本中 DriveApp 显示为Drive在主列表中 内置于 Apps 脚本中 驱动器 API 也显示为Drive在主列表中 必须添加到 Apps
  • 没有 Gem 的 Rails 分页

    我的任务是在不使用 gem 的情况下为 Rails 项目创建 前 10 个 后 10 个 最新 和 最旧 链接 在控制器中 我可以显示表中第一组 最新的 10 项 before action set page only index def