首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用rails对同一列中的两个记录进行减法?

如何使用rails对同一列中的两个记录进行减法?
EN

Stack Overflow用户
提问于 2022-04-08 23:19:22
回答 1查看 61关注 0票数 0

嗨,斯塔克溢出队。

我正在使用rails,并试图找到代码,使用rails对同一列中的2条记录进行减法。

我有下表

代码语言:javascript
运行
复制
customers
    id    num_hid     num_oxi
    1        1           2
    2        3           4
    3        5           6
    4        7           8

我想得到这个结果

代码语言:javascript
运行
复制
 @result =  last_num_hid_id_4 -  last_num_hid_id_3
 //calcultion is: 7-5 = 2

我完成了这段代码,但这显示了数组中的最后2条记录。

代码语言:javascript
运行
复制
<% @customers.each.last(2) do |customer|%> %>
  <%= customer.num_hid %>
<% end %>

我尝试了这段代码,但只显示了最后一条记录。

代码语言:javascript
运行
复制
@last_customer =Customer.all.last
@last.num_hid

有人能帮我解决这个问题吗?

我将感谢你所有的评论。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-09 00:13:38

您可以像这样在模型中定义类方法

代码语言:javascript
运行
复制
class Customer < ActiveRecord::Base
  def self.subtraction(atr)
    last[atr] - second_to_last[atr]
  end
end

或更有效率

代码语言:javascript
运行
复制
class Customer < ActiveRecord::Base
  def self.subtraction(atr)
    last(2).pluck(atr).reverse.inject(:-)
  end
end

然后在模型作用域之后调用它。

例如

代码语言:javascript
运行
复制
Customer.order(id: :desc).subtraction(:id)
# => -1 # if there is continuous sequence of ids
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71804015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档