Rails 中的字母分页

2024-05-19

我正在寻找 Rails 的宝石用于字母分页。我希望我可以在结果中找到第一个字母的列表(我的意思是,如果没有以“a”开头的行,我不希望“a”显示在分页链接上)。这种宝石已经存在了吗?

提前致谢!


这根本不难创建,例如,如果您有一个find,也许像:

@all_words = Word.select("words.word")

...它返回一个结果集,例如这样的单词列表:

["alphabet", "boy", "day", "donkey", "ruby", "rails", "iPad"]    

…你可以这样做:

@all_words.collect {|word| word[0,1]}.uniq.sort

这将返回:

["a", "b", "d", "r", "i"]

The .collect {|word| word[0,1]}将每个单词的第一个字母存储到一个新数组中,同时uniq过滤掉独特的字母和sort按字母顺序对这些进行排序。

只需将其分配给一个变量,您就可以在视图中使用它,如下所示:

<ul>
<% @first_letters.each do |letter| %>
    <%= content_tag :li, link_to(letter, words_pagination_url(letter), :title => "Pagination by letter: #{letter}") %>
<% end %>
</ul>

然后,如果传入一个参数,您的控制器操作可以决定如何处理分页中的参数:

def index
    if params[:letter]
        @words = Word.by_letter(params[:letter])
    else
        @words = Word.all
    end
end

然后模型中的范围将类似于:

scope :by_letter,
        lambda { |letter| {
            :conditions => ["words.word LIKE ?", "#{letter}%"]
        }}

您的路线需要类似:

match "words(/:letter)" => "words#index", :as => words_pagination

我还没有完全测试过这一点,但它应该会让你走上正确的道路。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 中的字母分页 的相关文章

  • Rails 3.2.9 和子文件夹中的模型

    从 Rails 3 2 9 开始 我无法将模型存储在子文件夹中 在我的应用程序中 我有这棵树 models type models assets user concerns 另外在 application rb 中有 config auto
  • Ruby on Rails:有条件地显示部分内容

    我不确定我在这里是否采用了最好的方法 但我有一个数据块 我想在搜索完成后显示它 并且之前根本不存在 首先 没有什么可显示的 其次它引用的模型为零 因此它抛出异常 我将此块放置在部分模板中 并将其添加到布局中的适当位置 有没有办法有条件地干净
  • 使用活动存储时堆栈级别太深 has_one_attached :picture

    我正在尝试为 Ruby on Rails API 项目实现 Active Storage 我根据文档放置了 has one attached picture 并成功将图片上传到AWS S3服务上 现在 当我尝试访问志愿者数据时 它说 Act
  • Soundcloud API 不明确支持 json 分页

    我正在使用的具体示例 http api soundcloud com users dubstep tracks json client id YOUR CLIENT ID http api soundcloud com users dubs
  • 使文本在 div 内可滚动

    我希望将一些冗长的文本包含到div可以通过向上或向下滚动来查看文本 现在 描述 文本呈现如下并且位于一个 div class div
  • 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
  • GWT 分页小部件

    我正在寻找 GWT 通用分页小部件 到目前为止我已经找到了GWT 小部件库 http gwt widget sourceforge net 和谷歌孵化器小部件 http code google com p google web toolki
  • Ruby on Rails - 向所有路由添加 ID 参数

    我想知道在 Rails 路由中实现以下功能的最佳方法是什么 场景 一个网站 用户注册账户 gt accountID 账户 成为网站内的主要实体 例子 https basecamp com ID https basecamp com ID 将
  • Rails 3.1 使用 app/assets/images/subdirectory 下的图像

    在我的 Rails 3 1 应用程序中 我将图像存储在app assets images jquery ui 我不知道如何在 CSS 中访问这些 assets image name png and assets jquery ui imag
  • 如何设置“attr_accessible”以便不允许使用 Ruby on Rails 访问模型的任何字段?

    如果在模型文件中我只有以下代码 class Users lt ActiveRecord Base end 这意味着什么 与模型相关的所有属性是否均可访问 我如何设置 attr accessible 以便not允许访问any领域的for那个型
  • Rails 返回 JSON 序列化属性 with_in Different_access

    我以前有 serialize params JSON 但这会返回 JSON 并将哈希键符号转换为字符串 我想使用符号引用哈希 这在使用哈希时最常见 我向它提供符号 Rails 返回字符串 为了避免这种情况 我创建了自己的 getter se
  • 程序“gem”可以在以下软件包中找到

    我正在 Virtual Box Ubuntu 13 10 上安装 Ruby on Rails 以下是步骤 ruby v gt 程序 ruby 可以在以下软件包中找到 尝试 sudo apt get install 来源 我的帐户 gt 好的
  • 在 debian Squeeze 上安装 RoR

    有什么方法可以在我的 debian squeeze 上安装 Ruby 1 9 2 或 1 8 7 Rails 3 吗 您可能不想在生产计算机上使用 RVM 它的 PATH 魔力会在不明显的地方 例如 cron 作业 被破坏 然后你就会陷入困
  • 如何检查rails上传的文件类型?

    我如何查看即将到来的文件类型 例如 csv 或 xls 请给个代码 我得到文件是这样的 aut name uploaded io original filename File open Rails root join public uplo
  • Preg_replace() 删除除查询结尾之外的所有内容

    首先 为我糟糕的英语感到抱歉 我有这样的疑问 SELECT t1 SELECT COUNT FROM table a t2 WHERE t1 id t2 id c AND t2 status 1 AS aula FROM table c t
  • 在新的 RHEL6 服务器上安装 ruby​​-filemagic gem 时遇到困难

    它似乎正在寻找 libmagic so 1 文件 我有那个文件 它位于 usr lib64 中 我没有以 root 用户身份运行此安装 我也在使用 rvm 和 Bundler 这是我的 bundle 命令的结果 当它到达 Gemfile 中
  • Django Rest Framework 分页设置 - 内容范围

    6 30 15 我怎样才能让这个问题变得更好并且对其他人更有帮助 反馈会有帮助 谢谢 我使用 DRF 作为 Dojo Dgrid Web 应用程序的服务器端 Dojo 需要来自服务器的内容范围或范围响应 目前它不发送任何内容 因此 dgri
  • Rails:渲染不起作用,仍然出现“模板丢失”

    我目前正在学习 Rails 指南 我完成了这些步骤 但仍然遇到错误 我的 Ruby 版本是ruby 2 1 1p76Rails 版本是4 0 4 按照指南的指示 我创建了一个Article Controller class Articles
  • C++ 如何确定字母表中一个单词是否在另一个单词之前

    我正在使用sort C 中的函数对 Game 类型的对象向量进行排序 这是我自己定义的 为此 我手动编写一个函数来代替operator lt 并将作为第三个参数传递给sort 功能 首先 我根据分数进行比较 然后 如果分数相同 我会根据球队

随机推荐

  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • 在 R 中提取 data.frames 列表的名称以及 data.frame 中的值

    在下面的代码中 j是 data frames 的命名列表 我想知道是否有办法 a 提取变量的数值 即one short and one long 在 data frames 内并附加它们的相关名称 即 AAA or BBB or CCC 到
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • 通过 python 中的另外两个修改数组[重复]

    这个问题在这里已经有答案了 假设我们有三个一维数组 A 长度为 5 B 长度相同 示例中为5 C 更长 比如长度为 100 C最初用零填充 A给出索引C应更改的元素 它们可能会重复 以及B给出应添加到初始零的值C 例如 如果A 1 3 3
  • json_encode 返回 NULL?

    由于某种原因 项目 描述 返回NULL使用以下代码 这是我的数据库的架构 CREATE TABLE staff id int 11 NOT NULL AUTO INCREMENT name longtext COLL
  • firebase 和 firebase-admin npm 模块有什么区别?

    我想使用 Firebase 身份验证 数据库和存储 构建 Node js Web 应用程序 但我对应该使用哪个模块感到困惑 firebase or firebase 管理员 或两者 管理 SDK 运行您的代码管理权限 https fireb
  • 限制 Dropzone 仅上传特定类型的文件

    我正在使用 Dropzone 上传文件 这是我的代码 div div
  • 如果用户在 Laravel 中经过身份验证,如何检查 Vue 组件?

    正如标题所述 我有点困惑如何根据用户是否登录并使用 Laravel 的 Auth 外观进行身份验证 使用 if else 语句处理 Vue 组件中的方法 我正在发出各种 Axios 请求 我需要根据用户是否登录来允许 禁止这些请求 我有 V
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • ') 与 $('')' aria-label='jQuery 中的 $('') 与 $('')'> jQuery 中的 $('') 与 $('')

    我看到人们以两种不同的方式在 jQuery 中创建 HTML 元素
  • 卷曲选项 -:未知

    我运行此命令在 ubuntu 18 04 上安装更新版本的 nodejs curl sL https deb nodesource com setup 12 x sudo E bash 我收到错误 curl 选项 未知 我在多个系统上尝试过
  • 使 uibarbuttonitems 淡入淡出

    我有一个完全用代码设置和控制的导航栏 所以它不会出现在IB中 我有一个按钮出现在 self navigationitem rightbarbutton myButton 我通过将其设置为 NIL 来使其消失 我想知道如何让它淡入淡出 我找到
  • Codesign:什么是未密封内容?

    我刚刚升级到 XCode 6 并尝试构建我的开发者 ID 签名的 Mac 应用程序 但是 我现在收到以下协同设计错误 unsealed contents present in the root directory of an embedde
  • 如何在 PostgreSQL 中返回不同时区的当前日期

    我正在开发一个使用东部时间并将数据库设置为太平洋时间的应用程序 这已经引起了一些问题 但我们被告知不可能有其他方式 所以我们只能解决它 不管怎样 我遇到的麻烦之一就是获取今天的约会 由于数据库位于太平洋 如果我使用以下命令询问今天的日期cu
  • 整数溢出问题

    我不断遇到整数溢出问题 我不知道如何解决它 有人可以帮忙吗 edx 包含 181 eax 包含 174 xor eax edx mov edx 2 div edx 假设你谈论的是x86 div edx这实际上没有意义 32位div将edx
  • Laravel 登录后重定向回来

    登录后如何重定向返回页面 在 Laravel 5 2 中 认证控制器 protected redirectTo 重定向用户
  • 如何授予轮换 Lambda 对 AWS Secrets Manager 的访问权限

    使用无服务器框架 我正在尝试构建定期轮换秘密的 Lambda 函数 https docs aws amazon com secretsmanager latest userguide rotating secrets html存储在 AWS
  • 获取 AlarmManager 中活动的 PendingIntents 列表

    我有办法获取活动列表PendingIntent在设备中 我开始工作AlarmManager我想看看我的PendingIntents 已正确创建和删除 也很高兴看到其他什么PendingIntent在那里 只是为了看看某些应用程序是否正在做一
  • 将下划线分配给变量。下划线是做什么的?

    最近我遇到了这样的代码 var myVariable variableKind 这似乎是一种分配方式null to myVariable 谁能解释一下背后的理由 在这种情况下 分配之间有什么区别 and null到一个变量 它使用默认值初始
  • Rails 中的字母分页

    我正在寻找 Rails 的宝石用于字母分页 我希望我可以在结果中找到第一个字母的列表 我的意思是 如果没有以 a 开头的行 我不希望 a 显示在分页链接上 这种宝石已经存在了吗 提前致谢 这根本不难创建 例如 如果您有一个find 也许像