Trong trường hợp của bạn, số lượng trường hợp của bạn sẽ không cập nhật khi user_id của sản phẩm thay đổi, Vì vậy, tôi khuyên bạn nên counter_cache
của đường ray
class Product < ActiveRecord::Base
belongs_to :user, counter_cache: true
end
Ngoài ra, hãy xem đá quý này
Lưu ý:- Điều này sẽ không giải quyết được per row insertion
của bạn vấn đề mặc dù
Sau đó, bạn phải viết bộ đếm tùy chỉnh, giống như sau
class Product < ApplicationRecord
has_many :products
attr_accessor :update_count
belongs_to :user#, counter_cache: true
after_save do
update_counter_cache
end
after_destroy do
update_counter_cache
end
def update_counter_cache
return unless update_count
user.products_count = user.products.count
user.save
end
end
trong bảng điều khiển rails
10.times{|n| Product.new(name: "Latest New Product #{n}", update_count: n == 9, user_id: user.id).save}