我将其迁移到启用计数器缓存
class AddUniquecodesCountToUser < ActiveRecord::Migration
def up
add_column :users, :uniquecodes_count, :integer, :default => 0
User.reset_column_information
User.all.each do |p|
User.reset_counters(p.id, :uniquecodes)
end
end
def down
remove_column :users, :uniquecodes_count
end
end
我通常通过此代码获取用户拥有的唯一码数
current_user.uniquecodes.joins(:community).merge(Community.not_deleted).order("uniquecodes.updated_at DESC").count.to_s
模型/ community.rb
....
def self.not_deleted
where deleted_at: nil
end
....
我这样做的原因是,社区记录有可能被删除。因此,一旦相关社区删除,我就不想显示唯一代码。
当您看到我的迁移文件时,它只计算或减少当用户创建/删除唯一代码时user_id
与特定用户的ID相关的唯一代码的整数。
如何添加上面写的条件,以排除删除community_id
的唯一码(如果已删除,则删除了delete_at列将填入时间戳)