我有以下课程,其中有几个针对同一关联的counter_culture计数器:
class Book < ::ActiveRecord::Base
belongs_to :user
counter_culture :user
counter_culture :user, column_name: Proc.new { |b| b.comedy? ? 'comedy_books_count' : nil }
counter_culture :user, column_name: Proc.new { |b| b.hard_cover? ? 'hard_cover_books_count' : nil }
end
我遇到的问题是它使用几个查询执行更新:
UPDATE "users" SET "books_count" = COALESCE("books_count", 0) + 1 WHERE "users"."id" = $1 [["id", 1616]]
UPDATE "users" SET "comedy_books_count" = COALESCE("comedy_books_count", 0) + 1 WHERE "users"."id" = $1 [["id", 1616]]
UPDATE "users" SET "hard_cover_books_count" = COALESCE("hard_cover_books_count", 0) + 1 WHERE "users"."id" = $1 [["id", 1616]]
有没有办法通过在单个查询中执行更新来更有效地使用counter_culture ?