如何使用 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
你好 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