如何使用 rails 在同一列的 2 条记录之间进行减法?

How to make a subtraction between 2 records from the same column using rails?

你好 Whosebug 团队。

我在 rails 上使用 ruby 并且我正在尝试找到使用 rails.[=15 在同一列的 2 条记录之间进行减法的代码=]

我有以下table

customers
    id    num_hid     num_oxi
    1        1           2
    2        3           4
    3        5           6
    4        7           8

我正在尝试得到这个结果

 @result =  last_num_hid_id_4 -  last_num_hid_id_3
 //calcultion is: 7-5 = 2

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

<% @customers.each.last(2) do |customer|%> %>
  <%= customer.num_hid %>
<% end %>

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

@last_customer =Customer.all.last
@last.num_hid

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

我会感谢您的所有意见。

提前致谢。

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

class Customer < ActiveRecord::Base
  def self.subtraction(atr)
    last[atr] - second_to_last[atr]
  end
end

或更高效

class Customer < ActiveRecord::Base
  def self.subtraction(atr)
    last(2).pluck(atr).reverse.inject(:-)
  end
end

然后在你的模型作用域之后调用它

例如

Customer.order(id: :desc).subtraction(:id)
# => -1 # if there is continuous sequence of ids