リファクタのメモです。
間違っていればご指摘お願いします!
背景
今回りファクタするコードが最終的に行いたいことは、過去の各商品の2つの値とある各商品の2つの値を比較です。
そのために、preivous_itemsを定義しています。
(元のコードを編集しているので、細かいところは、気にせずでお願いします。)
def check_sample
previous_items = items.map do |item|
next if item.quantity.zero?
[item.user_id, item.quantity]
end
new_items = new_sample.items.group(:user_id).count
# [[user_id,quantity],[2,4],[3,0]] == [[1,3],[2,4],[3,0]]
preivous_items == new_items
end
元のコード
previous_items = items.map do |item|
next if item.quantity.zero?
[item.user_id, item.quantity]
end
リファクタ後のコード
previous_items = items.where.not(quantity: 0)
.pluck(:user_id, :quantity)