如何使用 Ransack 和 Rails 构建具有范围的可点击链接

2023-11-30

我需要在我的应用程序中将一些范围作为可点击的链接。这将允许用户根据需要更改他们看到的数据。使用 Ransack 及其 ransackable_scopes 功能我非常接近。当用户单击范围时,我确实需要保留 Ransack 所做的任何过滤。

我已经让范围正常工作,但现在我只需要构建可点击的链接。

这是我的模型:

class Product < ActiveRecord::Base    

    scope :upward_trending, -> { where( "status > ?", 100).where(above_revenue_average: true).order('end_date DESC') }
scope :downward_trending, -> { where( "status < ?", 100).order('end_date DESC') }

    def self.ransackable_scopes(auth_object = nil)
    [:upward_trending, :downward_trending]
    end
end

现在,在我看来,我已将这两个范围添加为隐藏字段,如下所示:

        <%= search_form_for @q, :html => {:class => 'filter-form'} do |f| %>

        <div>

            <%= f.hidden_field :upward_trending %>
            <%= f.hidden_field :downward_trending %>

            <%= f.label :name_cont, "Search", class: 'label' %>
            <%= f.search_field :name_cont, class: 'form-control input-box', :placeholder => 'Search' %>

        </div>

        <div>

            <%= f.submit "Filter", class: 'btn btn-primary' %>
            <%= link_to "Clear Search", request.path, class:"btn btn-default" %>

        </div>
        <% end %>

从这里我只需要创建链接,它应该可以工作.. 最好的方法是什么?

感谢您的帮助!


我本来打算做肮脏的事。 (但还没有)

  • create search_form_for每个范围(您的案例将有 2 个表格)
  • 使用自己的条件设置隐藏字段(就像您在代码中所做的那样,但每个字段都有自己的形式)
  • 使提交按钮看起来像链接(使用CSS我认为这不是很难。你可以看到Bootstrap 按钮显示为链接)

不是很干净或优雅。

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

如何使用 Ransack 和 Rails 构建具有范围的可点击链接 的相关文章

  • Elastic Beanstalk、Bundler 找不到 gem“bundler”的兼容版本

    我已经尝试过将 Elastic Beanstalk 用于 Rails 当我运行 eb deploy 时出现此错误 我需要至少安装bundler 1 8 4 知道如何解决这个问题吗 Bundler could not find compati
  • Rails:测试需要访问 Rails 环境的助手(例如 request.fullpath)

    我有一个可以访问的助手request fullpath 在孤立的辅助测试中 request不可用 我应该怎么办 我可以以某种方式嘲笑它或类似的东西吗 我正在使用最新版本的 Rails 和 RSpec 这是我的助手的样子 def item a
  • 在 Rails 中实现多个字段的自动完成

    我有一个应用程序 它实现了群组功能 每个小组有n名成员 此外 每个组都有一个组特定的个人资料图片 我已经能够实现组功能的自动完成 仅记住组名称 我已经参考了以下教程 http railsforum com viewtopic php id
  • 指定的 sqlite3 gem 未加载

    虽然我对 Ruby on Rails 比较陌生 但我开发应用程序已经有一段时间了 我似乎遇到的问题是 当我创建一个新的 Rails 应用程序 本地 使用 c9 时 当我启动 apache 服务器时 我似乎收到此错误 Specified sq
  • 防止语言环境文件中的 HTML 字符实体被 Rails3 xss 保护破坏

    我们正在构建一个应用程序 这是我们第一个使用 Rails 3 的应用程序 并且我们必须从一开始就构建 I18n 作为完美主义者 我们希望在我们的视图中使用真正的排版 破折号 卷曲引号 省略号等 这意味着在我们的 locales xx yml
  • 当 config.cache_classes = true 时缺少方法

    我有两个名为 Scope 和 ScopeItem 的 ActiveRecord 模型 具有 has many 关系 class Scope lt ActiveRecord Base has many scope items end clas
  • 如何使用 rspec 测试 ActionCable 和 Devise?

    在我的 Rails 5 1 应用程序中 我使用设备进行身份验证和 ActionCable 我的 ActionCable 连接如下所示 module ApplicationCable class Connection lt ActionCab
  • Facebook API 错误 100 - 无效链接

    我正在使用 Facebook API 在我的 Rails 应用程序中创建发送对话框 我只是在 Javascript 中使用 Facebook 推荐的格式 作为 HTML 中的脚本 我的问题是我得到 API Error code 100 in
  • Bootstrap shown.bs.tab 事件不起作用

    我正在使用灵活的模板 http the8guild com themes html flexy v1 7 stylesPage html 使用引导程序 并且我无法让选项卡上的 shown bs tab 事件正常工作 我已经成功让它发挥作用J
  • 验证 ActionCable 连接

    我发现了一个很棒的 ActionCable gem 它是 SPA 的一个很好的解决方案 我只想发送html css and js资产 所有其他连接将通过ActionCable 交换字符串或者整数并不难 但是如何通过ActionCable登录
  • 强参数不起作用

    使用 Ruby 1 9 3 Rails 3 2 13 Strong parameters 0 2 1 我遵循了教程和railscasts中的每一个指示 但我无法让strong parameters工作 这应该是非常简单的事情 但我看不出错误
  • Googlebot 收到现有模板缺少模板错误

    在过去的几天里 当谷歌机器人尝试访问我们的主页 欢迎 索引 时 我们开始收到缺少模板的错误 我已经盯着这个看了几个小时 知道我只是错过了一些简单的东西 A ActionView MissingTemplate occurred in wel
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • 在 Rails 6 上定义 Secret_key_base 的正确方法是什么?

    正确的定义方式是什么secret key base既然我们已经有了每个环境的凭据 就可以在 Rails 6 上使用了吗 我的环境有变量SECRET KEY BASE但 Rails 并没有接受它 我尝试定义secret key base in
  • 如何以 Rails 方式处理 JavaScript 事件(例如“link_to :remote”)?

    我正在使用 Ruby on Rails 4 我想以 Rails 方式处理 JavaScript 事件 也就是说 例如 假设我有以下内容 link to destroy article path article method gt delet
  • Rails 4 - 如何链接到 PDF 文件(名称.PDF)?

    我正在生成 PDF 文件 我的链接如下所示 当我点击这个时 它会带我去 display invoice 123456789 这是一个 HTML 版本 在控制器中的操作如下 def display invoice if params invo
  • 如何在 Rails 控制器中调用通道方法?

    我有一个订阅用户的 ActionCable 方法 如果启动新的 convo 我也希望用户订阅新频道 我无法找出在控制器中调用通道方法的正确语法 更新 问题是消息在发送时附加到聊天框 但是当发送第一条消息时 Websocket 连接尚未建立
  • 使用 Ajax 在输入时提交 Textarea,然后渲染部分内容而不刷新整个页面

    目前我正在尝试通过 JS 和 Ajax 在没有提交按钮的情况下发表评论 并且它有效 问题是当帖子提交时 页面重新加载到 post id comment页面 我希望它呈现部分内容 而不是刷新整个页面或将我带到不同的页面 我对 JS 不熟悉 任
  • 为什么“捆绑”会在我的开发机器上安装生产 gem?

    Gemfile 说 gem sqlite3 groups gt development test gem mysql2 group gt production 然而当我打字时bundle install在我的开发机器上安装了所有 gem 我
  • 资产管道弃用警告 tsort.rb:226

    我的 Rails 4 2 在开发中运行良好 但在生产环境中我收到以下警告 DEPRECATION WARNING The configuration option config serve static assets has been re

随机推荐

  • mysqldb ..“NoneType”对象不可下标

    这段代码在以下情况下工作正常cur execute and db commit 行被注释掉 即 如果我所做的只是打印查询 则该程序将运行 n 行 问题似乎出现在这里 player categories statistics cur fetc
  • 将电子邮件地址设置为 ASP.NET 会员提供商中的用户名

    我想在会员 api 中使用电子邮件地址作为用户名 而不是接受用户名 我希望用户可以使用电子邮件地址注册我的网站 并且可以使用电子邮件 ID 和密码而不是用户名和密码登录 这就是我们所做的 因此它是可重用的 我们可以在 web config
  • 内插 NA 值

    我有两组与时间无关的样本 我想合并它们并计算缺失值 在我不具备两者价值观的时代 简化示例 A lt cbind time c 10 20 30 40 50 60 70 80 90 100 Avalue c 1 2 3 2 1 2 3 2 1
  • mechanize 出现“内存不足”错误

    我试图从网站上一页一页地抓取一些信息 基本上这就是我所做的 import mechanize MechBrowser mechanize Browser Counter 0 while Counter lt 5000 Response Me
  • 如何以编程方式在 Windows 8.1 手机中查找 IMEI 号码?

    我正在尝试以编程方式在 Windows Phone 8 1 应用程序中查找 IMEI 号码 并且我引用了许多链接 但找不到任何明确的内容 我无法找到 Windows 8 1 手机应用程序的 Tapi dll 所以 Tapi 库有其他选择吗
  • 无法在 Mac OS 上安装任何 ruby​​ gems - SSL_connect 错误

    我的环境是Mac OS 10 10 5 ruby版本2 2 4 或2 2 2或2 2 0 gem 升级后 是2 6 7 rvm版本1 27 0 即使在过去的几天里 这也有几个重复的内容 但这比我可以在评论中添加的信息更多 在任何版本的 ru
  • 如何检查 Android 设备上的 wifi 或 3g 网络是否可用

    在这里 我的 Android 设备同时支持 wifi 和 3g 在特定时间 该设备上可用的网络 因为我的要求是3g可用时我必须上传少量数据 当 wifi 可用时 必须上传全部数据 所以 我必须检查连接是wifi还是3g 请帮我 提前致谢 我
  • 是否可以就地修改文件中的行?

    是否可以逐行解析文件 并在浏览各行时就地编辑行 是否可以逐行解析文件 并在浏览各行时就地编辑行 可以使用备份文件作为 stdlib 进行模拟fileinput module does 这是一个示例脚本 它删除不满足的行some condit
  • 使用 Mandrill 发送时是否可以指定我自己的 Message-Id 电子邮件标头?

    我正在使用 Mandrill 发送电子邮件 并且我想自己设置 Message ID 我现在看到这样的ID Message Id lt 30152892 2015031118380 email protected gt 我想做的是找出为什么
  • 尝试为 Azure Web App 添加 SSL 绑定时没有证书

    我正在尝试为作为 API 应用程序主机的 Azure Web 应用程序创建 SSL 绑定 导航到相关 Web 应用程序的 自定义域和 SSL 后 我添加了自定义域名 admin api foo com 并上传了我的通配符证书 foo com
  • C++中最随机的函数是什么? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我用过 include
  • 如何将Wordpress 中的帖子索引页面移动到另一个文件而不是index.php?

    Wordpress 中的索引页显示所有帖子 没有评论 我想让 index php 成为静态页面 不是博客 我已经这样做了 但我不知道如何将帖子索引移动到其他页面 例如 blog php 有什么建议么 创建两个新页面 博客 和 主页 在阅读设
  • Ruby 解决方案中的 Project Euler #3 超时

    我正在研究一些欧拉项目问题来练习使用 Ruby 解决问题 我针对问题 3 提出了以下解决方案 虽然它适用于较小的数字 但它似乎永远不会返回较大数字的值 这是因为与 Bignum 有关吗 有人可以向我描述为什么它超时了 以及解决这个问题的更好
  • Python:将函数参数的默认值传递给 *args 或 **kwargs

    考虑示例 def decorator func def wrapper args kwargs print args kwargs func args kwargs return wrapper decorator def foo x y
  • 如何输出我在数组中找到元素的索引

    我想循环遍历我的数组并查找它是否包含某些 搜索词 然后我想返回该搜索词存在于哪些索引中 我还想返回它被找到的次数 这就是我到目前为止所取得的进展 根据是否找到它进行循环以返回 是 或 否 但如何返回实际的索引和时间 是的 我知道有一些函数可
  • 在不读取IO的情况下如何知道IO是否为空?

    我有一个IO对象 如 stdout stderr 我可以read empty 看看它是否为空 但是不读它是否可以知道它是否为空呢 我知道File has size but IO才不是 Edit抱歉 如果我的问题不够清楚 我将这些对象作为返回
  • SVG 中的剪切路径在 Safari 中不起作用

    我在 Illustrator 中创建了一个简单的多边形 然后在图像前面创建了一个剪切路径 蒙版 我已将其导出为 SVG 文件 并且它在 Chrome 和 Safari 中完美呈现 但是 当我使用 SVG 数据创建 HTML 文件时 它在 C
  • 在java swing中查找下一个出现的树节点

    我有一个j树 我已经编写了代码 用于在单击搜索按钮起作用时搜索树中的给定节点 现在我必须再次单击该按钮来搜索下一次出现的情况 如果存在 你能帮我吗 搜索按钮的代码是 m searchButton addActionListener new
  • 如何升级PowerBuilder代码?

    我有来自 PowerBuilder 5 的代码无法构建 编译器在完成之前停止 没有任何错误代码 我想将代码升级到 PowerBuilder 的最新版本 但 PowerBuilder 的一些中间版本对旧的 Microsoft java dll
  • 如何使用 Ransack 和 Rails 构建具有范围的可点击链接

    我需要在我的应用程序中将一些范围作为可点击的链接 这将允许用户根据需要更改他们看到的数据 使用 Ransack 及其 ransackable scopes 功能我非常接近 当用户单击范围时 我确实需要保留 Ransack 所做的任何过滤 我