Ruby on rails - 当嵌套记录已被删除时,如何忽略它?


  • unique_code belongs_to :社区
  • unique_code belongs_to :用户
  • 用户has_many :unique_codes
  • 社区has_many :unique_codes

我想像下面这样获取所有unique_codes

@unique_codes = @user.unique_codes
@unique_codes_count = unique_codes.count

但是,有时会删除社区。假设用户有 10 个unique_codes,则一个社区已被删除。

@unique_codes_count返回10但我想要9这是活跃社区unique_codes的数量。

我该怎么做?

尝试:

唯一代码模型:

class UniqueCode  
    belongs_to :community, :dependent => :destroy
end

控制器代码:

   def method_name
     count = 0
     @unique_codes.each do |code|
        if code != nil
          count = count + 1
        end
     end
     puts "This count is giving me the number of unique codes which are not deleted for active community"+count.to_s
   end
计数

将返回没有空值的行计数。

尝试:

在社区模型中添加:d ependent => :d estroy:

has_many :unique_codes, :dependent => :nullify
@unique_codes = @user.unique_codes.where("community_id IS NOT NULL")
@unique_codes_count = @unique_codes.count

相关内容

  • 没有找到相关文章

最新更新