1

我迁移了这个以启用计数器缓存

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

模型/社区.rb

....
def self.not_deleted
    where deleted_at: nil
end
....

我这样做的原因是,社区记录可能会被删除。因此,一旦相关社区被删除,我就不想显示唯一代码。

正如您看到的我的迁移文件,它只是在用户创建/删除唯一代码时向上或向下计数user_id与特定用户的 id 相关的唯一代码的总数。

如何添加我上面写的条件以排除community_id被删除的唯一代码(如果删除,deleted_at 列将填充时间戳)

4

0 回答 0