这是我的模特。我希望set_variations方法只在所有事务都完成提交到数据库时运行..使用当前的after_commit,它在每次提交后运行该方法..我想的可能是某种类型的计数器,但我不知道知道在这个过程完成之前会添加多少新产品。怎么做?
class Product < ActiveRecord::Base
belongs_to :merchant
validates :sellersku, uniqueness: true
validates :asin, uniqueness: true
include Send
before_save :split_off
after_commit :set_variations
def split_off
@merchant = self.merchant_id
self.five_of_asin = self.asin[0,5]
self.twenty_of_title = self.title[0,20]
end
def set_variations
binding.pry
Product.where(merchant_id: @merchant).find_each do |merch|
variations = merch.group(:twenty_of_title).count
end
end
end