首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何向activeadmin添加按计算值过滤?

在activeadmin中添加按计算值过滤,可以通过自定义过滤器来实现。以下是一种可能的实现方式:

  1. 首先,在你的ActiveAdmin资源文件中定义一个自定义过滤器。假设你有一个名为"Product"的资源,你可以在"app/admin/products.rb"文件中添加以下代码:
代码语言:txt
复制
ActiveAdmin.register Product do
  filter :total_price, as: :numeric, label: 'Total Price'

  controller do
    def scoped_collection
      super.includes(:line_items)
    end
  end

  index do
    column :name
    column :total_price
    # 其他列...
    actions
  end

  # 其他配置...
end
  1. 在上述代码中,我们定义了一个名为"total_price"的过滤器,它将显示为一个数字输入框。你可以根据你的需求选择不同的过滤器类型(如字符串、日期等)。
  2. 接下来,我们需要在模型中定义"total_price"属性的计算逻辑。假设你的产品模型是"Product",你可以在"app/models/product.rb"文件中添加以下代码:
代码语言:txt
复制
class Product < ApplicationRecord
  has_many :line_items

  def total_price
    line_items.sum(:price)
  end
end

在上述代码中,我们假设"Product"模型有一个关联的"LineItem"模型,每个产品可以有多个"LineItem"。我们通过计算所有关联的"LineItem"的价格之和来计算"total_price"属性。

  1. 最后,你可以在ActiveAdmin的产品列表页中使用"total_price"过滤器。登录到你的ActiveAdmin管理界面,导航到产品列表页,你将看到一个名为"Total Price"的过滤器。你可以在输入框中输入一个数字,然后点击"Filter"按钮来过滤出"total_price"大于或等于该值的产品。

这是一个基本的示例,你可以根据你的具体需求进行修改和扩展。关于ActiveAdmin的更多信息和用法,请参考ActiveAdmin官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • ChatGPT自动化编程:三分钟用Tkinter搞定计算器

    本文结合ChatGPT和GitHub Copilot是一个Tkinter版的计算器程序。Tkinter是Python的内置GUI库,不需要单独安装。 计算器程序有很多种类,本节会实现一个基本的计算器程序,在窗口上包含0到9一共10个数字按钮,以及“+”、“-”、“*”、“=”、“.”和“=”一共6个按钮,加一起一共16个按钮,正好是4行4列。具体的样式可以参考系统自身带的计算机程序,如图1就是macOS带的计算器程序的主界面。计算器的功能主要是单击除了“=”按钮外的其他按钮,会将按钮文本追加到计算器上方的文本输入框中,点击“=”按钮,会动态计算文本输入框中的表达式,双击文本输入框,会清空文本。

    01

    Android开发笔记(一百八十七)利用估值器实现弹幕动画

    如今上网看电影电视越发流行了,追剧的时候经常看到视频上方数行评论向左边飘去,犹如子弹那样飞快掠过,这些评论文字因此得名“弹幕”。弹幕评论由正在观看的网友们即兴发表,故而连绵不绝从画面右端不断涌现,直到漂至画面左端才隐没消失。 虽然弹幕效果可使用平移动画实现,但平移动画比较单调,只能控制位移,不能控制速率、文字大小、文字颜色等要素。若想同时操纵视图的多种属性要素,需要采用属性动画加以实现。 然而视图的位移大小由间距属性margin控制,该属性又分为上下左右四个方向,更要命的是,这几个margin并非视图View类的属性,而是布局参数LayoutParams的属性,意味着无法通过margin***直接构造属性动画对象。为了动态调整margin这种非常规属性,就要引入估值器实时计算当前的属性值,再据此设置自定义控件的状态参数。 以间距属性为例,它的动画步骤说明如下: 1、定义一个间距估值器,它实现了接口TypeEvaluator的evaluate方法,并在该方法中返回指定时间点的间距数值; 2、调用ValueAnimator类的ofObject方法,根据间距估值器、开始位置和结束位置构建属性动画对象; 3、调用属性动画对象的addUpdateListener方法设置刷新监听器,在监听器内部获取当前的间距数值,并调整视图此时的布局参数; 具体到编码实现上,需要自定义弹幕视图,其内部在垂直方向排列,每行放置一个相对布局。发表弹幕评论时,先随机挑选某行相对布局,在该布局右侧添加文本视图,再通过前述的间距动画向左渐次滑动。弹幕视图的定义代码示例如下:

    02
    领券